主题:如何获取EM9360的硬件ID号

  共有26783人关注过本帖    
帅哥哟,离线,有人找我吗?
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;
}

  单帖管理 | 引用 | 回复 回到顶部

返回首页

如何获取EM9360的硬件ID号

用户名:
            验证码: 验证码,看不清楚?请点击刷新验证码
内容: