日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

wince下获取mac地址的简单方法!

發(fā)布時(shí)間:2023/12/10 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 wince下获取mac地址的简单方法! 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
下,可以通過訪問注冊表獲取mac地址,可是非常可惜的是有些系統(tǒng)的注冊表不提供這個(gè)鍵值,另外也可以通過 DeviceIoControl這類函數(shù)獲得,但是所有方法要么不全面,要么不夠簡單或者有些平臺(tái)bsp包根本就不支持,我捉摸了一個(gè)比較通用的方法,通過SendArp函數(shù)來獲得,下面是代碼,用起來比較簡單,查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");//設(shè)備自身的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");//設(shè)備自身的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; }?

    需要注意的是本機(jī)ip不能用環(huán)回地址,否則SendArp操作會(huì)失敗

    獲得本機(jī)ip的方法很多,這里不列舉,訪問注冊表即可

    總結(jié)

    以上是生活随笔為你收集整理的wince下获取mac地址的简单方法!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。