鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

网络信息

使用getNetworkInterfaces方法即可得到当前机器上所有的网络接口。

import Java.net.Inet4Address;
import Java.net.InetAddress;
import Java.net.NetworkInterface;
import Java.util.Enumeration;
 
public class NetworkInterfaceTest {
 
    public static void main(String[] args) throws Exception {
       // 获得本机的所有网络接口
       Enumeration<NetworkInterface> nifs = NetworkInterface.getNetworkInterfaces();
       while (nifs.hasMoreElements()) {
           NetworkInterface nif = nifs.nextElement();
           // 获得与该网络接口绑定的 IP 地址,一般只有一个
           Enumeration<InetAddress> addresses = nif.getInetAddresses();
           while (addresses.hasMoreElements()) {
               InetAddress addr = addresses.nextElement();
               if (addr instanceof Inet4Address) { // 只关心 IPv4 地址
                   System.out.println("网卡接口名称:" + nif.getName());
                   System.out.println("网卡接口地址:" + addr.getHostAddress());
                   System.out.println();
               }
           }
       }
    }
}

鲲鹏上执行结果:

[root@centos7 test]# Java NetworkInterfaceTest
网卡接口名称:br-4932c6ca6ce6
网卡接口地址:192.168.48.1
 
网卡接口名称:docker0
网卡接口地址:172.17.0.1
 
网卡接口名称:eth1
网卡接口地址:122.0.0.154
 
网卡接口名称:eth0
网卡接口地址:11.0.0.154
 
网卡接口名称:lo
网卡接口地址:127.0.0.1