上面一篇简单介绍了InetAddress的基本用法
现在简单说明下NetworkInterface可以获取本机网络接口的相关信息,包括硬件地址,MTU,所有的IP地址等信息,需要获取本机IP时,最好使用NetworkInterface对配置的IP地址进行筛选
三个静态方法 getNetworkInterfaces()
getByName(String name)
getByInetAddress(InetAddress addr)
[b]1.getNetworkInterfaces()[/b]
结果
[b]2.getByName(String name)//上面的网络接口名称[/b]
结果
[b]3.getByInetAddress(InetAddress addr)[/b]
结果
[b]总的来说[/b]
InetAddress使用InetAddress的getByName方法可以获取远程服务的IP地址(通过DNS服务获取的),使用getAllByName方法可以获取远程指定服务的所有服务主机的IP地址。
用getLocalHost方法可以获取本地IP地址,但是这种方式并不可靠,当出现多张网卡,或一个网络接口配置了多个IP,或者不同的操作系统类型,都不能保证能够获得想要的IP。
NetworkInterface 获得本地网络的所有信息
总的网络关系不是太清楚。。。
现在简单说明下NetworkInterface可以获取本机网络接口的相关信息,包括硬件地址,MTU,所有的IP地址等信息,需要获取本机IP时,最好使用NetworkInterface对配置的IP地址进行筛选
三个静态方法 getNetworkInterfaces()
getByName(String name)
getByInetAddress(InetAddress addr)
[b]1.getNetworkInterfaces()[/b]
Enumeration<NetworkInterface> e=NetworkInterface.getNetworkInterfaces();
while(e.hasMoreElements())
System.out.println(e.nextElement().getName());
结果
//三个练习不清楚
lo //lo是环回接口
eth0 //本地连接的地址
ppp0 //网络拨号的
[b]2.getByName(String name)//上面的网络接口名称[/b]
NetworkInterface n= NetworkInterface.getByName("ppp0");
System.out.println(n.getInetAddresses().nextElement().getHostAddress());
结果
14.109.117.39 //我的网络地址
[b]3.getByInetAddress(InetAddress addr)[/b]
NetworkInterface n= NetworkInterface.getByInetAddress(InetAddress.getLocalHost());
System.out.println(n.getName());
结果
ech0 //我设置的本地连接的
[b]总的来说[/b]
InetAddress使用InetAddress的getByName方法可以获取远程服务的IP地址(通过DNS服务获取的),使用getAllByName方法可以获取远程指定服务的所有服务主机的IP地址。
用getLocalHost方法可以获取本地IP地址,但是这种方式并不可靠,当出现多张网卡,或一个网络接口配置了多个IP,或者不同的操作系统类型,都不能保证能够获得想要的IP。
NetworkInterface 获得本地网络的所有信息
总的网络关系不是太清楚。。。