首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

网络编程(2)

2012-12-18 
网络编程(二)上面一篇简单介绍了InetAddress的基本用法 现在简单说明下NetworkInterface可以获取本机网络

网络编程(二)
上面一篇简单介绍了InetAddress的基本用法
现在简单说明下NetworkInterface可以获取本机网络接口的相关信息,包括硬件地址,MTU,所有的IP地址等信息,需要获取本机IP时,最好使用NetworkInterface对配置的IP地址进行筛选
三个静态方法 getNetworkInterfaces()
             getByName(String name)
             getByInetAddress(InetAddress addr)
1.getNetworkInterfaces()

Enumeration<NetworkInterface> e=NetworkInterface.getNetworkInterfaces();while(e.hasMoreElements())System.out.println(e.nextElement().getName());

结果
//三个练习不清楚lo        //lo是环回接口eth0      //本地连接的地址ppp0      //网络拨号的

2.getByName(String name)//上面的网络接口名称
NetworkInterface n=NetworkInterface.getByName("ppp0");System.out.println(n.getInetAddresses().nextElement().getHostAddress());
 
结果
14.109.117.39 //我的网络地址

3.getByInetAddress(InetAddress addr)
NetworkInterface n=NetworkInterface.getByInetAddress(InetAddress.getLocalHost());System.out.println(n.getName());
 
结果
ech0        //我设置的本地连接的

总的来说
InetAddress使用InetAddress的getByName方法可以获取远程服务的IP地址(通过DNS服务获取的),使用getAllByName方法可以获取远程指定服务的所有服务主机的IP地址。
用getLocalHost方法可以获取本地IP地址,但是这种方式并不可靠,当出现多张网卡,或一个网络接口配置了多个IP,或者不同的操作系统类型,都不能保证能够获得想要的IP。
NetworkInterface 获得本地网络的所有信息
总的网络关系不是太清楚。。。

热点排行