wince下获取mac地址的简单方法!
来源:互联网 发布:matlab矩阵元素运算 编辑:程序博客网 时间:2024/05/23 00:28
http://blog.csdn.net/dch4890164/article/details/4003742
很多ce软件都需要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;
- }
需要注意的是本机ip不能用环回地址,否则SendArp操作会失败
获得本机ip的方法很多,这里不列举,访问注册表即可
- wince下获取mac地址的简单方法!
- wince下获取mac地址的简单方法!
- wince下获取mac地址的简单方法!
- 获取mac地址的方法
- windows下获取MAC地址的三种方法
- Windows下获取本机MAC地址的方法
- windows下获取mac地址的两种方法
- Android环境下稳妥获取mac地址的方法
- Wince获取MAC地址和 ip地址
- 获取本机mac地址的方法
- PHP获取网卡MAC地址的方法
- PHP获取网卡MAC地址的方法
- VC 物理MAC地址的获取方法
- 获取mac地址的两种方法
- 获取客户端网卡mac地址的方法
- Android 获取WIFI MAC地址的方法
- 获取 android 设备 mac 地址的方法
- JAVA获取MAC地址的方法
- 如何修改wince(s3c2410)的MAC地址
- 成为优秀的程序员真不简单
- 是该抛弃Spring HibernateTemplate的时候了
- B. Bets
- android静默安装的实现(turn)
- wince下获取mac地址的简单方法!
- ApiDemo学习 search 组件
- 几句话不容易做到,但还是拿来勉励一下自己
- uva 375 - Inscribed Circles and Isosceles Triangles
- wince中重启网卡
- 程序的内存布局篇
- 压缩感知进阶——有关稀疏矩阵
- VS2008 C# 检测到无法访问的代码的解决方法
- mybatis解析--转载