2017-06-19 103 views
0

我使用這個方法來獲取MAC地址:C#防止MAC欺騙

public static string GetMACAddress() 
    { 
     NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces(); 
     //for each j you can get the MAC 
     PhysicalAddress address = nics[0].GetPhysicalAddress(); 
     byte[] bytes = address.GetAddressBytes(); 

     string macAddress = ""; 

     for (int i = 0; i < bytes.Length; i++) 
     { 
     macAddress += bytes[i].ToString("X2"); 

     if (i != bytes.Length - 1) 
     { 
      macAddress += "-"; 
     } 
     } 
     return macAddress; 
    } 

,我保存的第一個結果,然後我一直在調用這個方法的時候每一個量,並比較其到第一個看看它是否被改變,從而導致其被欺騙。

但是,如果MAC地址已被欺騙,這將不起作用。

即使被欺騙,我如何獲得原始的mac地址?

+1

簡答:你不能。看到[這個問題](https://stackoverflow.com/questions/9546228/how-to-detect-the-original-mac-address-after-it-has-been-spoofed)替代唯一標識設備。 – Rob

回答

0

你不能,但你可以長期收集數據來幫助檢測欺騙者。如果網絡中的用戶使用20個不同的MAC地址,這是一個紅旗。如果兩個不同的登錄有相同的MAC地址,這也是一個紅旗(這是一個遠射,但仍然是一個告訴,但也可能是sockpuppeting的標誌)。你必須處理數據分析和歷史數據。至於獲得原始MAC,沒辦法。