NetworkInterface 对象表示物理硬件和虚拟地址网络接口,不能任意构造。与 InetAddress类一样,有一些静态工厂方法可以返回与某个网络接口关联的 NetworkInterface 对象。可以通过 IP 地址、名字或枚举来请求一个 NetworkInterface。
    名字的格式与平台有关。在典型的 UNIX 系统上,以太网接口名的形式为 eth0、eth1 等。 本地回送地址的名字可能类似于“lo”。在 Windows 上,名字是类似“CE31”和“ELX100” 的字符串,取自这个特定网络接口的厂商名和硬件模型名。

    1. /**
    2. * 类NetworkInterface的基本用法
    3. */
    4. public class UseNetIf {
    5. public static void main(String[] args) throws SocketException, UnknownHostException {
    6. InetAddress address = InetAddress.getByName("127.0.0.1");
    7. NetworkInterface byInetAddress = NetworkInterface.getByInetAddress(address);
    8. System.out.println(byInetAddress);
    9. System.out.println("-----------------------------");
    10. Enumeration<NetworkInterface> networkInterfaces
    11. = NetworkInterface.getNetworkInterfaces();
    12. while(networkInterfaces.hasMoreElements()){
    13. NetworkInterface networkInterface = networkInterfaces.nextElement();
    14. System.out.println(networkInterface+"===============");
    15. Enumeration<InetAddress> inetAddresses = networkInterface.getInetAddresses();
    16. while(inetAddresses.hasMoreElements()){
    17. System.out.println(networkInterface.getDisplayName()
    18. +"-"+inetAddresses.nextElement());
    19. }
    20. }
    21. }
    22. }