2013-04-03 20 views
9

C#でインターネットに接続していないときにコンピュータのMACアドレスを取得する方法はありますか? 私は接続しても、私がオフラインになっても手に入れることができません。しかし、強く私は私の仕事のためのMACアドレスが必要です。C#コンピュータのMACアドレスを "OFFLINE"にする

私のオンラインコードは、

var macAddr = 
     (from nic in NetworkInterface.GetAllNetworkInterfaces() 
     where nic.OperationalStatus == OperationalStatus.Up 
     select nic.GetPhysicalAddress().ToString()).FirstOrDefault(); 
+0

から変更

public static string GetMACAddress2() { NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces(); String sMacAddress = string.Empty; foreach (NetworkInterface adapter in nics) { if (sMacAddress == String.Empty)// only return MAC Address from first card { //IPInterfaceProperties properties = adapter.GetIPProperties(); Line is not required sMacAddress = adapter.GetPhysicalAddress().ToString(); } } return sMacAddress; } 

は、あなただけの 'nic.OperationalStatus =を削除することができます= OperationalStatus.Up'行? – Pondidum

+0

オンラインでは、mac address; 4CEB428D5072オフラインの場合、macは4CEB428D5073にアドレスします。どうして? –

答えて

24

public static string GetMACAddress1() 
{ 
    ManagementObjectSearcher objMOS = new ManagementObjectSearcher("Select * FROM Win32_NetworkAdapterConfiguration"); 
    ManagementObjectCollection objMOC = objMOS.Get(); 
    string macAddress = String.Empty; 
    foreach (ManagementObject objMO in objMOC) 
    { 
     object tempMacAddrObj = objMO["MacAddress"]; 

     if (tempMacAddrObj == null) //Skip objects without a MACAddress 
     { 
      continue; 
     } 
     if (macAddress == String.Empty) // only return MAC Address from first card that has a MAC Address 
     { 
      macAddress = tempMacAddrObj.ToString();    
     } 
     objMO.Dispose(); 
    } 
    macAddress = macAddress.Replace(":", ""); 
    return macAddress; 
} 

System.Net名前空間から:わずかHow to get the MAC address of system - C-Sharp Corner

+0

'IPInterfacePropertiesプロパティ= adapter.GetIPProperties();'行が必要ですか? – Joel

+0

@Joelいいえこの行はテストに基づいている必要はありません私はちょうど私の開発ボックスで走った。私のテストを反映するように更新されました。 – jordanhill123

関連する問題