2016-12-22 7 views
0

私のマシンのMacアドレス用にUUIDを生成する必要があります。また、私はUUIDからMACアドレスを抽出したい。CU#を使ってUUIDからMacアドレスをエンコードしてデコードする

以下の2つの方法でエンコードとデコードを行うことができます。しかし、暗号化された文字列はUUIDではなく生成されます。

エンコード:

System.Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(plainTextBytes)); 

デコード:

System.Text.Encoding.UTF8.GetString(System.Convert.FromBase64String(base64EncodedData)); 

しかし、私の要件のために、私は(エンコード)UUIDを生成し、MACアドレス(デコード)を抽出したいです。どのようにC#のコードでこれを行うには?

+0

のMACアドレス。 MACアドレスは[もはや生成されたGuidsから導出できません](http://stackoverflow.com/questions/2757910/how-are-net-4-guids-generated/2757969#2757969) – stuartd

答えて

0

次のコードを使用してMACアドレスを取得できます。 私たちのテストでは、マシンの約1.3%(恐らく何らかの形の仮想マシンなど)でnullが返されます。

あなたがすることはできません最初のIP対応デバイス

public static string GetMACAddress() 
    { 
     try 
     { 
      using (ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration")) 
      { 
       using (ManagementObjectCollection moc = mc.GetInstances()) 
       { 
        if (moc != null) 
        { 
         foreach (ManagementObject mo in moc) 
         { 
          try 
          { 
           Trace.WriteLine(mo["Index"] + " Mac " + mo["Caption"] + " : " + mo["MacAddress"] + " Enabled " + (bool)mo["IPEnabled"]); 
           if (mo["MacAddress"] != null && mo["IPEnabled"] != null && (bool)mo["IPEnabled"] == true) 
           { 
            return mo["MacAddress"].ToString(); 
           } 
          } 
          finally 
          { 
           mo.Dispose(); 
          } 
         } 
        } 
       } 
      } 
     } 
     catch (Exception ex) 
     { 
      Trace.TraceWarning("Failed to read DiskID\r\n" + ex.Message); 
     } 
     return null; 
    } 
関連する問題