我听说用我当前的winpcap库是不可能的。获得机器的MAC地址 - 良好的解决方案?
这是真的吗?我在网上看到很多例子,但接着发表评论说:“这不起作用”。
什么是获得本地机器的MAC地址的最佳方式是什么?
我听说用我当前的winpcap库是不可能的。获得机器的MAC地址 - 良好的解决方案?
这是真的吗?我在网上看到很多例子,但接着发表评论说:“这不起作用”。
什么是获得本地机器的MAC地址的最佳方式是什么?
一种常见的方法是使用来自UUID的位,但这不是完全可靠的。例如,即使在没有网络适配器的机器上,它也会返回一个值。
幸运的是,有一种方法可以可靠地运行在任何合理的最新版本的Windows上。 MSDN说,它只是重新到Windows 2000,但如果没有记错,它也适用于NT 4,围绕SP 5日开始,在任何人的情况下仍然使用NT 4
#include <windows.h>
#include <iphlpapi.h>
#include <stdio.h>
int main() {
IP_ADAPTER_INFO *info = NULL, *pos;
DWORD size = 0;
GetAdaptersInfo(info, &size);
info = (IP_ADAPTER_INFO *)malloc(size);
GetAdaptersInfo(info, &size);
for (pos=info; pos!=NULL; pos=pos->Next) {
printf("\n%s\n\t", pos->Description);
printf("%2.2x", pos->Address[0]);
for (int i=1; i<pos->AddressLength; i++)
printf(":%2.2x", pos->Address[i]);
}
free(info);
return 0;
}
请原谅古老的C代码.. 。
这是在一个项目中,但在winpcap项目中,我试图利用它在netioapi.h中有很多编译器错误 – bobber205 2010-01-16 22:40:15
如果计算机具有> 1个NIC,则不存在“MAC”地址。您可以使用WMI查询此信息,http://techsupt.winbatch.com/TS/T000001002F19.html以获取更多详细信息
现在链接已经死亡 – malat 2014-09-15 13:13:17
IPHelper的GetAdaptersAddresses()
http://msdn.microsoft.com/en-us/library/aa365915%28VS.85%29.aspx
我成功地使用WinCE上获得operstatus,应与MAC地址的工作太。
好的解决方案是什么?如果你的意思是生成一些独特的计算机标识符用于许可证,我会说它不应该依赖。当用户更换网卡时会发生什么情况,有2张网卡,没有网卡? – Ash 2010-01-15 07:16:12