Windows 8 如何以编程方式在WinRT(Windows 8)中获取mac地址?

Windows 8 如何以编程方式在WinRT(Windows 8)中获取mac地址?,windows-8,windows-runtime,Windows 8,Windows Runtime,我正在WinRT中寻找访问mac地址的API。没有办法。Windows应用商店应用程序API是沙盒的,并且对您可以获取的有关用户的信息有很大的限制,主要是因为隐私问题 您无法检索MAC地址,但您可以检索特定于硬件的信息以识别机器(如果您正试图这样做的话) 下面是一篇完整的msdn文章,讨论这个主题: 注意只使用您需要的信息,而不是完整的id,因为它可能会根据对您无用的信息(例如Dock Station字节)进行更改 以下是基于几个字节(CPU id、内存大小、磁盘设备序列号和bios)计算的设备

我正在WinRT中寻找访问mac地址的API。

没有办法。Windows应用商店应用程序API是沙盒的,并且对您可以获取的有关用户的信息有很大的限制,主要是因为隐私问题

您无法检索MAC地址,但您可以检索特定于硬件的信息以识别机器(如果您正试图这样做的话)

下面是一篇完整的msdn文章,讨论这个主题:

注意只使用您需要的信息,而不是完整的id,因为它可能会根据对您无用的信息(例如Dock Station字节)进行更改

以下是基于几个字节(CPU id、内存大小、磁盘设备序列号和bios)计算的设备id的代码示例:

string deviceSerial=string.Empty;
// http://msdn.microsoft.com/en-us/library/windows/apps/jj553431
Windows.System.Profile.HardwareToken HardwareToken=Windows.System.Profile.HardwareIdentification.GetPackageSpecificToken(null);
使用(DataReader DataReader=DataReader.FromBuffer(hardwareToken.Id))
{
整数偏移=0;
而(偏移量
看起来被禁止,根据这一点,可能是重复的
string deviceSerial = string.Empty;
// http://msdn.microsoft.com/en-us/library/windows/apps/jj553431
Windows.System.Profile.HardwareToken hardwareToken = Windows.System.Profile.HardwareIdentification.GetPackageSpecificToken(null);
using (DataReader dataReader = DataReader.FromBuffer(hardwareToken.Id))
{
    int offset = 0;
    while (offset < hardwareToken.Id.Length)
    {
        byte[] hardwareEntry = new byte[4];
        dataReader.ReadBytes(hardwareEntry);

        // CPU ID of the processor || Size of the memory || Serial number of the disk device || BIOS
        if ((hardwareEntry[0] == 1 || hardwareEntry[0] == 2 || hardwareEntry[0] == 3 || hardwareEntry[0] == 9) && hardwareEntry[1] == 0)
        {
            if (!string.IsNullOrEmpty(deviceSerial))
            {
                deviceSerial += "|";
            }
            deviceSerial += string.Format("{0}.{1}", hardwareEntry[2], hardwareEntry[3]);
        }
        offset += 4;
    }
}

Debug.WriteLine("deviceSerial=" + deviceSerial);