1

PCの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 アドレスが出力されない場合があります。どうして?

4

1 に答える 1

4

127.0.0.1は常に存在するループバック アドレスです (*)。

値を取得するより良い方法は、すべてのネットワーク インターフェイス ( http://docs.oracle.com/javase/6/docs/api/java/net/NetworkInterface.html#getNetworkInterfaces() ) を取得し、それらを除外することです。その IP は で始まります127

(*) ネットワーク ケーブルが切断されている Windows マシンを除く...

于 2013-09-09T16:26:54.590 に答える