1
我在編寫虛擬路由器。我的第一個任務是構建一個以太網幀。我目前正在嘗試獲取MAC源地址。我有代碼獲取我的機器上使用的所有MAC地址,但我有一個virtualbox主機網絡,所以代碼也抓取了這個MAC地址。我無法通過編程確定我的以太網幀應該使用哪個MAC地址。這是我當前的代碼在java中獲取正確的非虛擬MAC地址
private byte[] grabMACAddress(){
try{
InetAddress[] addresses = InetAddress.getAllByName(InetAddress.getLocalHost().getHostName());
for(int i = 0; i < addresses.length; i++){
NetworkInterface ni = NetworkInterface.getByInetAddress(addresses[i]);
mac = ni.getHardwareAddress();
if (mac != null){
for(int j=0; j < mac.length; j++) {
String part = String.format("%02X%s", mac[j], (j < mac.length - (1)) ? "" : "");
s += part;
}
System.out.println();
}
else{
System.out.println("Address doesn't exist or is not accessible.");
}
}
}
catch(IOException e){
}
System.out.println(s);
return mac;
}
謝謝!我用你的技術連接到公共服務器。它像一個魅力。 –