找回密码
 立即注册
搜索
查看: 370|回复: 9

网卡MAC地址

[复制链接]

133

主题

1725

回帖

2464

积分

论坛元老

如今的南泥湾,处处是荒山

积分
2464
发表于 2005-3-4 16:07:45 | 显示全部楼层 |阅读模式
普通方法取得mac地址可以在网卡属性值中被改变
求:直接得到网卡硬件mac地址的代码;18

0

主题

13

回帖

17

积分

新手上路

积分
17
发表于 2005-3-13 23:37:28 | 显示全部楼层
CString GetHostID()
{

typedef DWORD(CALLBACK * PGAINFO)(PIP_ADAPTER_INFO,PULONG);//GetAdaptersInfo
        DWORD index=0;
       
        //函数指针
        PGAINFO pGAInfo;
        CString HostID;
       
        //加载IP Helper API 所需的库文件
        HINSTANCE hInst;//实例句柄
        PIP_ADAPTER_INFO pInfo=NULL,pInfoTemp=NULL;
        ULONG ulSize=0;

        HostID=_T("");

       
        hInst=LoadLibrary("iphlpapi.dll");
        if(!hInst){
                cout<<"iphlpapi.dll not supported in this platform!\n";
                return 1;
        }

        //------------------------------------》获得网卡数据
        pGAInfo=(PGAINFO)GetProcAddress(hInst,"GetAdaptersInfo");

        pGAInfo(pInfo,&ulSize);//第一次调用,获取缓冲区大小
        pInfoTemp=pInfo=(PIP_ADAPTER_INFO)new(char[ulSize]);
        pGAInfo(pInfo,&ulSize);
        //遍历每一张网卡
        while(pInfo)
        {
                if(pInfo->AddressLength==6){
                        int i,j;

                        unsigned char tempstr[16],modulestr[16];
                        for(i=0;i<20;i++) {modulestr='\0'; tempstr='\0'; }
                        for(i=0;i<10;i++) modulestr=0x30+i;
                        for(i=0;i<6;i++)  modulestr[i+10]=0x41+i;
                        for(i=0;i<(int)pInfo->AddressLength;i++)
                        {
                                j=(((unsigned int)pInfo->Address) & 0xf0)>>4 ;
                                tempstr[i*2]=modulestr[j];
                                j=(((unsigned int)pInfo->Address) & 0x0f) ;
                                tempstr[i*2+1]=modulestr[j];
                        }
                        HostID = tempstr;
                        pInfo=NULL;
                }
                else
                        //将当前指针移向下一个
                        pInfo=pInfo->Next;
     }
     pInfoTemp;//回收无用内存
         return HostID;
}
回复

使用道具 举报

448

主题

6446

回帖

4989

积分

荣誉版主

积分
4989
发表于 2005-3-14 10:07:07 | 显示全部楼层
最初由 funlove 发布
[B]CString GetHostID()
{

typedef DWORD(CALLBACK * PGAINFO)(PIP_ADAPTER_INFO,PULONG);//GetAdaptersInfo
        DWORD index=0;
       
        //函数指针
        PGAINFO pGAInfo;
        CString HostID;
       
        //加载IP Helper API 所需的库文件
        HINSTANCE hInst;//实例句柄
        PIP_ADAPTER_INFO pInfo=NULL,pInfoTemp=NULL;
        ULONG ulSize=0;

        HostID=_T("");

       
        hInst=LoadLibrary("iphlpapi.dll");
        if(!hInst){
                cout<<"iphlpapi.dll not supported in this platform!\n";
                return 1;
        }

        //------------------------------------》获得网卡数据
        pGAInfo=(PGAINFO)GetProcAddress(hInst,"GetAdaptersInfo");

        pGAInfo(pInfo,&ulSize);//第一次调用,获取缓冲区大小
        pInfoTemp=pInfo=(PIP_ADAPTER_INFO)new(char[ulSize]);
        pGAInfo(pInfo,&ulSize);
        //遍历每一张网卡
        while(pInfo)
        {
                if(pInfo->AddressLength==6){
                        int i,j;

                        unsigned char tempstr[16],modulestr[16];
                        for(i=0;i<20;i++) {modulestr='\0'; tempstr='\0'; }
                        for(i=0;i<10;i++) modulestr=0x30+i;
                        for(i=0;i<6;i++)  modulestr[i+10]=0x41+i;
                        for(i=0;i<(int)pInfo->AddressLength;i++)
                        {
                                j=(((unsigned int)pInfo->Address) & 0xf0)>>4 ;
                                tempstr[i*2]=modulestr[j];
                                j=(((unsigned int)pInfo->Address) & 0x0f) ;
                                tempstr[i*2+1]=modulestr[j];
                        }
                        HostID = tempstr;
                        pInfo=NULL;
                }
                else
                        //将当前指针移向下一个
                        pInfo=pInfo->Next;
     }
     pInfoTemp;//回收无用内存
         return HostID;
} [/B]
回复

使用道具 举报

40

主题

542

回帖

774

积分

高级会员

积分
774
发表于 2005-3-15 02:48:41 | 显示全部楼层
我做过一个程序能看到

需要联系我吧
回复

使用道具 举报

0

主题

13

回帖

17

积分

新手上路

积分
17
发表于 2005-3-15 08:08:31 | 显示全部楼层
哈哈,怎么让帖子不显示图示。你看我发的 都是大头娃娃
回复

使用道具 举报

108

主题

949

回帖

1420

积分

金牌会员

积分
1420
发表于 2005-3-15 10:15:36 | 显示全部楼层
这个方法是通过API取的啊,那一样可以改。
回复

使用道具 举报

133

主题

1725

回帖

2464

积分

论坛元老

如今的南泥湾,处处是荒山

积分
2464
 楼主| 发表于 2005-3-15 14:50:02 | 显示全部楼层
不幸,修改同样有效
回复

使用道具 举报

0

主题

13

回帖

17

积分

新手上路

积分
17
发表于 2005-3-15 23:46:50 | 显示全部楼层
明白了,你是在做license,不是找不到mac地址的取法,算我多事!郁闷。。。。
回复

使用道具 举报

133

主题

1725

回帖

2464

积分

论坛元老

如今的南泥湾,处处是荒山

积分
2464
 楼主| 发表于 2005-3-25 08:24:06 | 显示全部楼层
大家都来关税
回复

使用道具 举报

0

主题

37

回帖

49

积分

注册会员

积分
49
发表于 2005-4-1 12:35:51 | 显示全部楼层
谢谢分享!万分感谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|海浩社区

GMT+8, 2025-9-18 14:31 , Processed in 0.072363 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表