主題:如何獲取EM9360的硬件ID號 共有51437人關注過本帖 |
---|
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; } |
單帖管理 | 引用 | 回復 |