主题:如何获取EM9360的硬件ID号 共有44960人关注过本帖 |
---|
wlbf |
1楼 信息 | 搜索 | 邮箱 |
加好友 发短信 |
如何获取EM9360的硬件ID号 Post By:2013-12-31 14:30:00 [只看该作者]
最好提供一个程序
|
单帖管理 | 引用 | 回复 |
x10 |
2楼 |
Post By:2013-12-31 16:29:00 [只看该作者]
MAC地址可以作为硬件ID号。
|
|
单帖管理 | 引用 | 回复 |
wlbf |
3楼 信息 | 搜索 | 邮箱 |
加好友 发短信 |
Post By:2014-1-5 10:28:00 [只看该作者]
MAC地址怎么获取
|
单帖管理 | 引用 | 回复 |
yy |
4楼 信息 | 搜索 | 邮箱 |
加好友 发短信 |
Post By:2014-1-6 9:06:00 [只看该作者]
如果你是用的CE,你可以百度或者MSDN查下GetAdaptersInfo这个API函数,它在Iphlpapi.h里面,另外工程要添加iphlpapi.lib
IP_ADAPTER_INFO AdapterInfo[4]; ULONG OutBufLen = sizeof(IP_ADAPTER_INFO); GetAdaptersInfo(&AdapterInfo[0], &OutBufLen); GetAdaptersInfo(&AdapterInfo[0], &OutBufLen); GetAdaptersInfo要调用2次,然后AdapterInfo[0].Address就是MAC。 [此贴子已经被作者于2014-1-6 9:06:26编辑过]
|
单帖管理 | 引用 | 回复 |
lqk |
5楼 信息 | 搜索 | 邮箱 |
加好友 发短信 |
Post By:2014-1-6 9:23:00 [只看该作者]
#include <Iphlpapi.h>
#pragma comment(lib, "Iphlpapi.lib") //Read MAC PIP_ADAPTER_INFO pAdapterInfo=NULL; ULONG ulLen=0; dwResult = GetAdaptersInfo( pAdapterInfo,&ulLen ); if( ERROR_BUFFER_OVERFLOW == dwResult ) { pAdapterInfo = (PIP_ADAPTER_INFO)new BYTE[ulLen]; dwResult = GetAdaptersInfo( pAdapterInfo,&ulLen ); } dl = 1; if( dwResult != NO_ERROR ) { sprintf( DatBuf, "Read adapter information failure! ErrCode:%d\r\n", dwResult ); OutPutMsg( DatBuf ); dl= 0; } do{ #ifdef WCE_PLATFORM_EM9161 strcpy( tmpBuf, "DM9CE1" ); #else strcpy( tmpBuf, "EMACB1" ); #endif dwResult = strcmp( pAdapterInfo->AdapterName, tmpBuf ); if( 0 != dwResult ) { sprintf( DatBuf, "Adpter:%s\r\n", pAdapterInfo->AdapterName ) ; OutPutMsg( DatBuf ); fHandle.Write( DatBuf, strlen(DatBuf)); pAdapterInfo = pAdapterInfo->Next; } else break; } while( NULL != pAdapterInfo->Next ); for (i1 = 0, i2 = 0; i1 < 5; ++i1) i2 += sprintf ( DatBuf + i2, "X:", pAdapterInfo->Address[i1]); sprintf ( DatBuf + i2, "X", pAdapterInfo->Address[i1]); sprintf( tmpBuf, "%s", DatBuf ); sprintf( DatBuf, "Adapter:%s MAC: %s\r\n", pAdapterInfo->AdapterName, tmpBuf ); OutPutMsg( DatBuf ); fHandle.Write( DatBuf, strlen(DatBuf)); LCD_Write( 0, row, tmpBuf, dl ); |
单帖管理 | 引用 | 回复 |
yl |
6楼 信息 | 搜索 | 邮箱 |
加好友 发短信 |
Post By:2014-1-6 14:22:00 [只看该作者]
如果你使用的是Linux系统,则参考代码如下:
#include <stdio.h> #include <string.h> #include <unistd.h> #include <sys/ioctl.h> #include <net/if.h> #include "em9x60_drivers.h" int GetLocalMac( char* mac ) { int sock; struct ifreq ifr_mac; if( (sock=socket(AF_INET,SOCK_STREAM,0))<0 ) { return -1; } memset( &ifr_mac, 0, sizeof(ifr_mac) ); strcpy( ifr_mac.ifr_name, "eth0" ); if( ioctl( sock, SIOCGIFHWADDR, &ifr_mac)<0 ) { close( sock ); return -2; } memcpy( mac, ifr_mac.ifr_hwaddr.sa_data, 6 ); close( sock ); return 0; } int main( int argc,char* argv[] ) { char BufStr[80]; char mac[6]; GetLocalMac( mac ); sprintf( BufStr, "Mac: x:x:x:x:x:x", (unsigned char)mac[0], (unsigned char)mac[1], (unsigned char)mac[2], (unsigned char)mac[3], (unsigned char)mac[4], (unsigned char)mac[5] ); printf( "Mac = %s\n", BufStr ); return 0; } |
单帖管理 | 引用 | 回复 |