我有要求在我的Metro UI应用程序中获取网络接口的MAC地址。据我所知,这在.NET 4.5 for Metro应用程序API中不受支持。我错了吗?可能在.NET Metro应用程序中获取网络MAC地址?
回答
您正在访问的低级别的网络从一个Metro风格的应用程序信息的限制,因此,这是不可能与股票SDK。这是设计。
悲伤的脸:(但我想要的MAC地址 – Jippers 2012-07-30 17:55:47
private void getDeviceInfos()
{
Profiles = Windows.Networking.Connectivity.NetworkInformation.GetConnectionProfiles();
Adapter = Profiles[0].NetworkAdapter;
Guid AdapterId = Adapter.NetworkAdapterId;
}
IReadOnlyList<Windows.Networking.Connectivity.ConnectionProfile> Profiles;
Windows.Networking.Connectivity.NetworkAdapter Adapter;
这有助于获得MAC地址? – 2012-09-16 23:44:27
编号给出一个GUID。 – Jippers 2012-09-17 20:25:14
您不能检索MAC地址每说,但您可以检索硬件特定的信息来识别机器。
下面是一个完整的MSDN文章讨论的主题:Guidance on using the App Specific Hardware ID (ASHWID) to implement per-device app logic (Windows)
小心使用你需要的信息,而不是完整的ID,因为它可能修改是对你没用(如码头信息例如站字节)。
下面是基于几个字节(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);
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);
- 1. Ping网络并获取mac地址
- 2. 如何从网络上的IP地址获取MAC地址?
- 3. 网络适配器禁用时获取MAC地址?
- 4. 在Windows 8应用程序中获取MAC地址
- 5. 在ASP.NET应用程序中获取客户端MAC地址
- 6. 获取本地网络中的现场主机MAC地址
- 7. 使用Java小程序在网页上获取MAC地址
- 8. 是否有可能获得当前连接的WiFi网络的SSID和MAC地址在应用程序
- 9. 获取C#中网络适配器的原始MAC地址#
- 10. 如何获取WiFi网络接口的MAC地址?
- 11. 在Android中获取网络IP地址
- 12. 有可能使用PHP获取网络地址?
- 13. 获取网络中的所有mac地址android
- 14. 获取应用程序的计算机的ID或MAC地址?
- 15. 获取网络客户端的MAC地址,使用PHP
- 16. 如何获取使用java的网络设备的MAC地址
- 17. Python扫描网络IP地址和mac
- 18. Arduino搜索网络的IP地址,并获得MAC地址
- 19. 获取网络用户的IP地址
- 20. 获取内置WiFi网络的MAC地址
- 21. 从本地网络的IP地址获取本机网络上的机器MAC地址#
- 22. 是否有可能从IIS获取asp.net网络地址
- 23. C++:获取Vista上的网络适配器的MAC地址?
- 24. 通过IPv6获取远程MAC地址
- 25. 如何在Windows 8 metro风格的应用程序中获得网络响应?
- 26. 如何通过C#获取网络打印机的MAC地址?
- 27. 如何使用Visual Studio(C++或.net/C#)应用程序从已知(和固定)MAC地址获取IP地址?
- 28. 获取MAC地址
- 29. Mac OS X:我如何获得所有可用WiFi网络的MAC地址?
- 30. 获取网络上的所有IP和MAC地址
的目的是什么,你所需要的MAC地址?也许有问题的替代解决方案。 – 2012-09-16 23:44:47
这是一个“好的”持久计算机标识符。是的,人们可以欺骗MAC地址,但很少有同一本地网络中的两个系统具有完全相同的MAC地址,这是我们所需要的。 – Jippers 2012-09-17 20:24:49