Java网络编程从入门到精通(11):操纵NetworkInterface类得到网[Java编程]
本文“Java网络编程从入门到精通(11):操纵NetworkInterface类得到网[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
从JDK1.4开始,Java供应了一个NetworkInterface类.这个类可以得到本机全部的物理网络接口和虚拟机等软件操纵本机的物理网络接口成立的逻辑网络接口的信息.
1、成立NetworkInterface对象的两个静态办法
NetworkInerface类和InetAddress一样,也没有public的构造办法.因此,必须通过它的两个静态办法来成立NetworkInterface对象.可以利用两种办法来成立NetworkInterface对象:网络接口名(getByName办法)和IP地址(getByInetAddress办法).
1. getByName办法
这个办法可以通过网络接口名来成立NetworkInterface对象.这个网络接口名并非计算机名,而是用于标识物理或逻辑网络接口的名字,普通是由操作系统设置的.网络接口名在大大都操作系统上(包含Windows、Linux和Unix)是以eth开首,背面是网络接口的索引号,从0开始.如本机安了三块网卡,那么网络接口名就顺次是eth0、eth1和eth2.NetworkInterface对象的toString办法可以返回网络接口的名称、显示名和这个网络接口上绑字的全部IP地址等信息.当网络接口名不存在时,getByName返回null.getByName办法定义以下:
public static NetworkInterface getByName(String name) throws SocketException
下面的代码是一个显示指定网络接口信息的程序,网络接口名通过号令行参数传入.
package mynet;
import java.net.*;
public class MyNetworkInterface1
{
public static void main(String[] args) throws Exception
{
if (args.length == 0)
return;
NetworkInterface ni = NetworkInterface.getByName(args[0]);
System.out.println((ni == null) ? "网络接口不存在!" : ni);
}
}
测试1
履行以下号令:
java mynet.MyNetworkInterface1 eth0
运行后果:
name:eth0 (Realtek RTL8139 Family PCI Fast Ethernet NIC) index: 4 addresses:
/192.168.18.10;
/192.168.18.20;
测试2
履行以下号令:
java mynet.MyNetworkInterface1 abcd
运行后果:
网络接口不存在!
以上是“Java网络编程从入门到精通(11):操纵NetworkInterface类得到网[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |