小编Dav*_*vre的帖子

获取 Java 中特定网络接口的名称

我正在使用 Windows 10,我想在我的计算机上插入一个设备(它创建了一个名为“Ethernet 12”和描述为“foobar”的新网络接口),并且能够使用 Java 设置该接口的 IP 地址。使用此链接:使用 JAVA 更改计算机 IP 地址,我可以配置接口的 IP 地址。我的问题是我无法在 Java 中检索设备创建的接口的名称。从我找到的文档中,我做了以下事情:

    Enumeration<NetworkInterface> networkInterfaces =  NetworkInterface.getNetworkInterfaces();

    while(networkInterfaces.hasMoreElements())
    {
        NetworkInterface networkInterface = networkInterfaces.nextElement();

        if (networkInterface.isUp())
            System.out.println("Display name: " + networkInterface.getDisplayName() + "\nName: " + networkInterface.getName() + "\nAddress: " + networkInterface.getInterfaceAddresses().get(0));
    }
Run Code Online (Sandbox Code Playgroud)

并得到以下结果:

    Display name: foobar
    Name: eth15
    Address 111.116.15.4
Run Code Online (Sandbox Code Playgroud)

我希望名称是“以太网 12”而不是“eth15”,这似乎没有任何意义。我注意到所有其他接口(wifi、以太网等)都一样。由于我需要我的接口(以太网 12)的真实名称来使用 netsh(而不是像“eth15”这样的随机地址)配置 IP 地址,我被卡住了......

是否有理由将“eth15”作为我的界面名称?

谢谢

java jvm network-programming network-interface

2
推荐指数
1
解决办法
1661
查看次数