如何通过java获取计算机的MAC地址和IP地址列表?

如何通过java获取计算机的MAC地址和IP地址列表?,java,Java,我正在开发一个软件,我需要通过java代码列出计算机的IP地址和MAC地址。有没有办法得到ip地址和mac地址的列表 感谢自JDK1.6以来,Java开发人员能够通过NetworkInterface类访问网卡详细信息 InetAddress ip; ip = InetAddress.getLocalHost(); System.out.println("Current IP address : " + ip.getHostAddress());

我正在开发一个软件,我需要通过java代码列出计算机的IP地址和MAC地址。有没有办法得到ip地址和mac地址的列表


感谢自JDK1.6以来,Java开发人员能够通过NetworkInterface类访问网卡详细信息

            InetAddress ip;
    ip = InetAddress.getLocalHost();
    System.out.println("Current IP address : " + ip.getHostAddress());

    NetworkInterface network = NetworkInterface.getByInetAddress(ip);

    byte[] mac = network.getHardwareAddress();

    System.out.print("Current MAC address : ");

    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < mac.length; i++) {
        sb.append(String.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : ""));        
    }
    System.out.println(sb.toString());
inet地址ip;
ip=InetAddress.getLocalHost();
System.out.println(“当前IP地址:+IP.getHostAddress());
NetworkInterface网络=NetworkInterface.getByInetAddress(ip);
字节[]mac=network.getHardwareAddress();
系统输出打印(“当前MAC地址:”);
StringBuilder sb=新的StringBuilder();
for(int i=0;i
对于多个ip地址:

                    java.util.Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces();
        en.hasMoreElements(); ) {
        NetworkInterface iface = en.nextElement();
        List<InterfaceAddress> addrs = iface.getInterfaceAddresses();
        //For each network interfaces iterate through each ip address
        for(InterfaceAddress addr : addrs) {
                         ip = addr.getAddress();
                          //Process the IP ...
java.util.Enumeration en=NetworkInterface.getNetworkInterfaces();
en.hasMoreElements();){
网络接口iface=en.nextElement();
List addrs=iface.getInterfaceAddresses();
//对于每个网络接口,迭代每个ip地址
用于(接口地址:地址){
ip=addr.getAddress();
//处理IP。。。

从java程序运行命令的示例代码

    Process p;
    String cmd="ifconfig-a";
    p = Runtime.getRuntime().exec(cmd);
    BufferedReader br = new BufferedReader(
    new InputStreamReader(p.getInputStream()));
    while ((s = br.readLine()) != null)
    System.out.println("line: " + s);
    p.waitFor();
    System.out.println ("exit: " + p.exitValue());
    p.destroy();
输出:

line: eth0      Link encap:Ethernet  HWaddr 00:13:D3:DE:5A:A4  --->MAC address in linux

在发布问题之前,您必须在互联网上搜索答案。希望能有所帮助。本教程对此进行了很好的解释…请查看此链接此代码适用于计算机中的单个ip,但如果一台计算机中有多个ip地址,该怎么办。您能在此处定义p变量吗