MACアドレスをオンラインで取得する方法を探して、2つの異なる方法を見つけました。
最初のタイプ
public static void main(string [] args)throws exception {inetaddress ia = inetaddress.getLocalHost(); system.out.println(getMacAddress(IA));} private static string getMacAddress(inetAddress IA)は例外{//ネットワークインターフェイスオブジェクト(つまり、ネットワークカード)を取得し、バイト配列に存在するMACアドレスを取得します。 byte [] mac = networkinterface.getbyinetaddress(ia).gethardwareaddress(); //次のコードは、Macアドレスを文字列に組み立てることです。バイトを正の整数文字列s = integer.tohexstring(mac [i]&0xff); sb.append(s.length()== 1?0 + s:s);} //文字列のすべての小文字を大文字に変更し、通常のMacアドレスとsb.toString(); touperces();この方法は、マシンのMACアドレスのみを取得できるようです。
2番目のタイプ
public static void main(string [] args)スロー例外{getmac( "192.168.1.186");} public static string getmac(string ip){string str = null; string mac = null; try {process p = runtime.getRuntime()。exec( "nbtstat -a" + ip); inputStreamReader IR = new inputStreamReader(p.getInputStream()、 "gbk"); LinEnumberReader input = new LinEnumberReader(IR); for(; true;){str = input.readline(); if(str!= null){if(str.indexof( "mac address")> 1){mac = str.substring(str.indexof( "mac address") + 9); break; }}} system.out.println(mac);} catch(ioexception e){e.printstacktrace();} return mac;}私はこの方法を好みますが、この方法はわずかに時間効率が低いかもしれません。これに注意を払う必要があるポイントがあります。データストリームをGBK形式に変更することを忘れないでください。そうしないと、読み取りデータが文字化けされ、後で進めることができません。次に、フィールドを特定します。 「MACアドレス」である可能性があるため、自分で調整する必要がある場合があります。
上記はすべて、編集者からもたらされたJavaのMACアドレスを取得するための2つの方法(推奨)です。誰もがwulin.comをもっとサポートできることを願っています〜