試圖使用getHardwareAddress()方法獲取我的網卡的mac地址,但根據NetworkInterface.getNetworkInterfaces()我有20多個網絡接口。我通過檢查其他屬性將它縮小到一個,但是它是否可以在所有(或者至少大多數情況下)和操作系統中工作,只能在WIndows 7 PC上使用。在Java 7中獲取正確的macaddress
如果一臺計算機有兩張網卡,我可以找出哪一個實際上用於當前的互聯網連接?
Enumeration<NetworkInterface> e = NetworkInterface.getNetworkInterfaces();
while(e.hasMoreElements())
{
NetworkInterface ni = e.nextElement();
if(ni!=null && ni.getHardwareAddress()!=null &&ni.getInetAddresses().hasMoreElements() && ni.supportsMulticast())
{
String macAddress = Hex.encodeHexString(ni.getHardwareAddress());
System.out.println("MACADDRESSIS"+macAddress);
}
}
MAC地址可以很容易地改變,我希望你不要過分依賴它來保證安全 –
所有的MAC地址都可能被使用。 –
@Peter Lawrey在Windows上ipconfig清楚地顯示了正確的mac地址,所以我只是問如何以純Java方式做到這一點 –