wince下获取mac地址的简单方法!
生活随笔
收集整理的這篇文章主要介紹了
wince下获取mac地址的简单方法!
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
下,可以通過訪問注冊表獲取mac地址,可是非常可惜的是有些系統的注冊表不提供這個鍵值,另外也可以通過
DeviceIoControl這類函數獲得,但是所有方法要么不全面,要么不夠簡單或者有些平臺bsp包根本就不支持,我捉摸了一個比較通用的方法,通過SendArp函數來獲得,下面是代碼,用起來比較簡單,查msdn,獲得方法如下
// ?? //?Link?with?ws2_32.lib?and?iphlpapi.lib ?? // ?? #include?<windows.h> ?? #include?<stdio.h> ?? #include?<tchar.h> ?? #include?<iphlpapi.h> ?? ?? int?__cdecl?main()?? {?? ????HRESULT?hr;?? ????IPAddr??ipAddr;?? ????ULONG???pulMac[2];?? ????ULONG???ulLen;?? ????ipAddr?=?inet_addr?("192.168.25.31");//設備自身的ip?? ????memset?(pulMac,?0xff,?sizeof?(pulMac));?? ????ulLen?=?6;?? ?????? ????hr?=?SendARP?(ipAddr,?0,?pulMac,?&ulLen);?? ????printf?("Return?%08x,?length?%8d/n",?hr,?ulLen);?? ?????? ????size_t?i,?j;?? ????char?*?szMac?=?new?char[ulLen*3];?? ????PBYTE?pbHexMac?=?(PBYTE)?pulMac;?? ????// ?? ????//?Convert?the?binary?MAC?address?into?human-readable?? ????// ?? ????for?(i?=?0,?j?=?0;?i?<?ulLen?-?1;?++i)?{?? ????????j?+=?sprintf?(szMac?+?j,?"%02X:",?pbHexMac[i]);?? ????}?? ?????? ????sprintf?(szMac?+?j,?"%02X",?pbHexMac[i]);?? ????printf?("MAC?address?%s/n",?szMac);?? ?????? ????delete?[]?szMac;?? ????return?0;?? }???
//
// Link with ws2_32.lib and iphlpapi.lib
//
#include <windows.h>
#include <stdio.h>
#include <tchar.h>
#include <iphlpapi.h>int __cdecl main()
{HRESULT hr;IPAddr ipAddr;ULONG pulMac[2];ULONG ulLen;ipAddr = inet_addr ("192.168.25.31");//設備自身的ipmemset (pulMac, 0xff, sizeof (pulMac));ulLen = 6;hr = SendARP (ipAddr, 0, pulMac, &ulLen);printf ("Return %08x, length %8d/n", hr, ulLen);size_t i, j;char * szMac = new char[ulLen*3];PBYTE pbHexMac = (PBYTE) pulMac;//// Convert the binary MAC address into human-readable//for (i = 0, j = 0; i < ulLen - 1; ++i) {j += sprintf (szMac + j, "%02X:", pbHexMac[i]);}sprintf (szMac + j, "%02X", pbHexMac[i]);printf ("MAC address %s/n", szMac);delete [] szMac;return 0;
}?
需要注意的是本機ip不能用環回地址,否則SendArp操作會失敗
獲得本機ip的方法很多,這里不列舉,訪問注冊表即可
總結
以上是生活随笔為你收集整理的wince下获取mac地址的简单方法!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2017平安银行信用卡预借现金额度是多少
- 下一篇: 2017怎么申请信用卡?申请信用卡要注意