繁体   English   中英

检索IP和mac地址

[英]Retrieving IP and mac addresses

我想获得我的电脑的IP地址和MAC地址。 我使用以下代码来执行此操作:

InetAddress ip;
try {

    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());

} catch (UnknownHostException e) {

    e.printStackTrace();

} catch (SocketException e){

    e.printStackTrace();

}

它也有效,但有时相同的代码打印IP为127.0.0.1并且不打印任何mac地址。 怎么会?

127.0.0.1是始终存在的回送地址(*)。

获得价值的更好方法是获取所有网络接口( http://docs.oracle.com/javase/6/docs/api/java/net/NetworkInterface.html#getNetworkInterfaces() )并过滤掉其IP以127开头。

(*)除了网络电缆断开连接的Windows机器上...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM