网络编程(二)

上面一篇简单介绍了InetAddress的基本用法
现在简单说明下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 获得本地网络的所有信息
总的网络关系不是太清楚。。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值