我聽說用我當前的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