使用C#从UUID编码和解码Mac地址

时间:2016-12-22 11:46:02

标签: c# cryptography uuid guid

我需要为我的机器Mac地址生成UUID。我还想从UUID中提取mac地址。

我知道我们可以使用以下两种方法进行编码和解码。但它只生成加密字符串而不是UUID。

编码:

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

解码:

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

但是对于我的要求,我想生成(编码)UUID并提取(解码)mac地址。如何在C#代码中执行此操作?

1 个答案:

答案 0 :(得分:0)

您可以使用以下代码获取MAC地址。 从我们的测试中,它将在大约1.3%的机器上返回null(可能是某种形式的虚拟机或非常锁定的东西)。

首个启用IP的设备的MAC地址

    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;
    }