NetworkInterface类表示一个由名称例如“eth0”、“net2”和分配给此接口的IP地址列表组成的网络接口。该类提供访问网卡设备的相关信息,例如可以获取网卡名称、IP地址和子网掩码等。
创建NetworkInterface对象
由于NetworkInterface对象表示物理硬件和虚拟地址,所以不能任意构造,而是提供了一些静态工厂方法通过名称、IP地址或者枚举的方式返回与某个网络接口关联的NetworkInterface对象。
1.getByName(String name)方法根据指定名称返回一个NetworkInterface对象。名称的格式与平台有关,在UNIX系统上以太网接口名称的形式为“eth0”、“eth1”等。本地回送地址的名称可能类似“lo”。
public static NetworkInterface getByName(String name) throws SocketException {
if (name == null)
throw new NullPointerException();
return getByName0(name);
}
private native static NetworkInterface getByName0(String name)
throws SocketException;
2.getByInetAddress(InetAddress addr)方法返回一个与指定IP地址绑定的NetworkInterface对象。如果指定的IP地址绑定了多个网络接口,则不确定返回哪个网络接口。在Linux系统中,bonding的含义是将多个物理网卡抽象成一个网卡,能够提升网络吞吐量,实现网络冗余、负载等功能。
public static Networ