说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

怎样得到本机的网卡号???

编辑:说三道四文库 发布时间:2017-11-19 05:50
HTML文档下载 WORD文档下载 PDF文档下载
怎样得到本机的网卡号???
到DOS 下运行:
ipconfig /all
其中的物理地址不知道是不是你想要的网卡号
我想编程实现
BOOL bRet = FALSE; 
        NCB ncb; 
        PUCHAR pData; 
        ZeroMemory(&ncb, sizeof(ncb)); 
        pData = (PUCHAR)malloc(sizeof(ADAPTER_STATUS) + 16 * sizeof(NAME_BUFFER)); 
         
        CopyNetbiosName((char *)&ncb.ncb_callname, szName); 
        ncb.ncb_command = NCBASTAT; 
        ncb.ncb_buffer = (PUCHAR)pData; 
        ncb.ncb_lana_num = 0; 
        ncb.ncb_length = sizeof(ADAPTER_STATUS) + 16 * sizeof(NAME_BUFFER); 
        Netbios(&ncb); 
         
        CString szAddress; 
        if(ncb.ncb_retcode == NRC_GOODRET) 
        { 
                ADAPTER_STATUS *pStatus = (ADAPTER_STATUS *)pData; 
                UCHAR *pAddress = pStatus->adapter_address; 
                szAddress.Format("%02X%02X%02X%02X%02X%02X",  
                        pAddress[0], pAddress[1], pAddress[2], 
                        pAddress[3], pAddress[4], pAddress[5]); 
                 
                bRet = TRUE; 
        } 
        else 
                szAddress = "Wrong Name!"; 
你在msdn上用howto get mac查
HOWTO: Get the MAC Address for an Ethernet Adapter
ID: Q118623 

 

--------------------------------------------------------------------------------
The information in this article applies to:

Microsoft Win32 Software Development Kit (SDK), used with:
Microsoft Windows NT, versions 3.1, 3.5, 3.51, 4.0 
Microsoft Windows 2000 
Microsoft Windows versions 95, 98

--------------------------------------------------------------------------------


SUMMARY
This article demonstrates how to get the Media Access Control (MAC) address for an ethernet adapter programmatically by using NetBIOS, if your card is bound to NetBIOS. 



MORE INFORMATION
To get the Media Access Control (MAC) address for an ethernet adapter programmatically, use the Netbios() NCBASTAT command and provide a "*" as the name in the NCB.ncb_CallName field. This is demonstrated in the sample code below. 

For computers with multiple network adapters you need to enumerate the LANA numbers and perform the NCBASTAT command on each. Even when you have a single network adapter, it is a good idea to enumerate valid LANA numbers first and perform the NCBASTAT on one of the valid LANA numbers. It is considered bad programming to hardcode the LANA number to 0. 

In addition, other hardware and software may be assigned their own MAC addresses. For example, a modem can have a MAC address. Also, a RAS client or server can install "dummy" network adapters that correspond to a dialup or serial connection. Normally, these MAC addresses are randomly generated. If an adapter status is called on a LANA that corresponds to one of these adapters when no connection is present, Netbios returns error 0x34 (NRC_ENVNOTDEF) even if a reset was previously performed. 

With the NetBEUI and IPX transports, the same information can be obtained at a command prompt by using: 


   net config workstation 
The ID given is the MAC address. 

The following code enumerates all LANA numbers, performs a reset (NCBREST), and an adapter status (NCBASTAT). 
Sample Code

   #include <windows.h>
   #include <wincon.h>
   #include <stdlib.h>
   #include <stdio.h>
   #include <time.h>

   typedef struct _ASTAT_
   {

      ADAPTER_STATUS adapt;
      NAME_BUFFER    NameBuff [30];

   }ASTAT, * PASTAT;

   ASTAT Adapter;

   void main (void)
   {
      NCB Ncb;
      UCHAR uRetCode;
      char NetName[50];
      LANA_ENUM   lenum;
      int      i;

      memset( &Ncb, 0, sizeof(Ncb) );
      Ncb.ncb_command = NCBENUM;
      Ncb.ncb_buffer = (UCHAR *)&lenum;
      Ncb.ncb_length = sizeof(lenum);
      uRetCode = Netbios( &Ncb );
      printf( "The NCBENUM return code is: 0x%x \n", uRetCode );

      for(i=0; i < lenum.length ;i++)
      {
          memset( &Ncb, 0, sizeof(Ncb) );
          Ncb.ncb_command = NCBRESET;
          Ncb.ncb_lana_num = lenum.lana[i];

          uRetCode = Netbios( &Ncb );
          printf( "The NCBRESET on LANA %d return code is: 0x%x \n",
                  lenum.lana[i], uRetCode );

          memset( &Ncb, 0, sizeof (Ncb) );
          Ncb.ncb_command = NCBASTAT;
          Ncb.ncb_lana_num = lenum.lana[i];

          strcpy( Ncb.ncb_callname,  "*               " );
          Ncb.ncb_buffer = (char *) &Adapter;
          Ncb.ncb_length = sizeof(Adapter);

          uRetCode = Netbios( &Ncb );
          printf( "The NCBASTAT on LANA %d return code is: 0x%x \n",
                  lenum.lana[i], uRetCode );
          if ( uRetCode == 0 )
          {
             printf( "The Ethernet Number on LANA %d is:
                     %02x%02x%02x%02x%02x%02x\n",
            lenum.lana[i],
                  Adapter.adapt.adapter_address[0],
                  Adapter.adapt.adapter_address[1],
                  Adapter.adapt.adapter_address[2],
                  Adapter.adapt.adapter_address[3],
                  Adapter.adapt.adapter_address[4],
                  Adapter.adapt.adapter_address[5] );
          }
       }

   } 

Additional query words: 

Keywords : kbnetwork kbAPI kbNetBIOS kbNTOS310 kbNTOS350 kbNTOS351 kbSDKPlatform kbWinOS95 kbGrpNet 
Version : WINDOWS:95,98 
Platform : WINDOWS 
Issue type : kbhowto 


Last Reviewed: December 7, 1999
&copy; 2000 Microsoft Corporation. All rights reserved. Terms of Use.
 



--------------------------------------------------------------------------------
Send feedback to MSDN.Look here for MSDN Online resources.
去这里看看吧,你要的都在哪里了,取网卡地址的方法有n多种.
而且这个问题在本论坛也有很多人问了,你查一下就知道了.
用SendARP()或IP帮助中的一个函数(不好意思,具体是什么俺忘记了,等俺给你查查,晚上再来)
GetAdaptersInfo()
【走近讲师】孙昌勋:容联云通讯构筑通讯能力云平台生态圈 最新版本的Hive 0.13发布,增加ACID特性 开发中的“软”与“硬”:高画质移动游戏开发之道 从国际编码竞赛来看编程语言受众度 AMD迎接变革:加速OpenCL的未来 角逐Hadoop市场,Cloudera与Hortonworks竞争白热化 OpenStack将提供对Docker的支持 Facebook Q1财报:营收25.02亿美元、59%来自于移动 黑客们盯上了卫星,IOActive的惊人发现 开发汽车应用之前,你必须了解的7件事 埃森哲:智能电视潮流,势不可挡 直接拿来用!Facebook移动开源项目大合集 高大上Hadoop技术培训:Hadoop在企业中的应用实战 【走近讲师】新浪丛磊:通过MAE构建企业内部私有PaaS平台 API增长新趋势 消息应用类独占鳌头 软件项目为何会失败? 严澜:搭建高可用的MongoDB集群(二) 微软、思科、Google、Facebook等联合推出CII 狙击“Heartbleed” 这是个神奇的国度:细数五大印度裔IT牛人CEO Atmel CMO Sander Arts眼中的创客运动 Unity“三巨头”:全心全意为开发者服务 全球移动广告现状报告:哪种平台、应用最赚钱? 《近匠》Smart Wallit,钱包找不到了?给它“打个电话”吧 Mozilla新CTO:JavaScript、 Firefox OS专家Andreas Gal 李彦宏发布百度大数据引擎,及与谷歌、亚马逊等类似项目对比 大数据领域,实时打击欺诈犯罪的4个战场 一周消息树:谷歌Project Ara,将开启下一个智能手机时代 数据恢复服务商的6个最佳实践 【走近讲师】谭晓生:魔高一尺道高一丈,360基于大数据的网络攻击检测 一周热点:摩尔定律让位于贝索斯定律 阿里巴巴集团CTO王坚确认出席第六届中国云计算大会 用jsp编打印图片的问题(很急) 谁第一个来,谁得分 哪位高手帮忙编写一个程序,使局域网各用户之间能传送文件!谢谢! 今天生日,除了MM没人祝我生日快乐,只好自已祝福自已了(散分) 如何将表单提交到数据库中? 在线等!!!!!!!!!!!! 哪位高手帮忙编写一个程序,使局域网各用户之间能传送文件!谢谢! 哪位高手帮忙编写一个程序,使局域网各用户之间能传送文件!谢谢! 如何在屏幕任意位置显示移动的文字 收到了数字情书,我嫩是解不开。。帮帮我吧,不好回了。 如何让winamp慢速播放mp3? 哪位高手帮忙编写一个程序,使局域网各用户之间能传送文件!谢谢! 在服务器端的DLL文件中如果获取网站在服务器的磁盘上的路径? 在水晶报表中如何控制所显示记录的条数! 一个超级奇怪的iis问题??????? 一路同行?我开始学习C#, 我是一从为接触过单板的人,学的是软件。现在我想提一个问题。 如何解决UNIX通讯问题? 关于读出文件里的字符串与录入的字符串比较问题 哪位高手帮忙编写一个程序,使局域网各用户之间能传送文件!谢谢! help!有关SESSIONBEAN! 无法联接ORACLE数据库,错误信息:ORA-01034:ORACLE not available 其它信息 sos 用vb怎么实现打印功能啊,不是vb附带的那小功能啊,把家帮帮忙啊,。。。sos 请教高手:视频传输编程技术!!! 请教!.net的程序一定要 各位大侠:小女请教一问题 求救!美编的工作站显示器只能显示黑白了! Excel控件使用之怪现象,请DX们诊断诊断 ACCESS转为SQLSERVER后的问题~~ 这是什么错误? asp中怎么读取xml中的元素值呀? 请问,DATAGIRD能否在编辑时,在表格里使用下拉框控件,如何使用??谢谢 哪里有delphi中文帮助 为什末不能向项目Test中添加一个新文件abc.aspx ? 谢谢!! 各位大虾请指教:线程如何获得消息并进行处理 小弟打算开家小店,众位兄弟姐妹出出点子开个什么样的店,及注意事项! 感谢let5flying,,请进!~ 关于pb中调用oracle数据库下的存储过程(在线等待) 求www.richtextbox.com的控件(得到将很感激) changchang请进~~ asp 为何无法打开Access 备份到磁带机的文题 选择Tcl的十大理由-----转载自Tcl/Tk中文网 BCB6中调用lib中的函数出错,急。 javascript导出xml的内容至Excel的问题! 看C/C++,C中谈到很多DOS下的编程问题,我想问问,C/C++标准函数库和类库在WIN和LINUX下区别大吗?会有什么区别? 高程复习 大家来看看,帮我做个决定 text i .text 可否实现? 问个问题 怎么通过SMTP发送邮件啊。。我看了好几个程序。怎么都不行啊。程序怎么写啊。急!!! 口语交际,让座!公共汽车上人很多,这时,上来一位老奶奶,站在漂亮阿姨的座位旁边祥和云想劝阿姨让座 在公共汽车上作文450字!重点人物要有一位老奶奶抱着一个婴儿 一位售货员和一位不让座后来让座阿姨好词好语多用点. 在公共汽车上给老奶奶让 座有一个小伙子抢座的口语交际注意有礼貌 以知速度和质量求动能的公式谢谢了,大神帮忙啊如题速度和质量都知道 求动能 美致模型服务怎么样?谢谢了,大神帮忙啊 模型质量的差别如题 介绍下MG HG YV还有其他模型的种类 别说明下那个质量最好 和相关的信息 谁知道这几个字怎么读图片没传上来 概率论中请问p[A(A+B)]/p(A+B)是怎么转换到p(A)/p(A+B),也就是为什么p[A(A+B)]/p(A+B)=p(A)/p(A+B)求详细过程解说! 伏缺菜什么意思 伏几顿睡什么意思? 怎样才能做好五星级酒店服务员,以及五星级酒店服务员的的标准!我想到五星级酒店工作做服务员,但是什么都不知道,希望有人给参考! 中央第二轮巡视工作展开 已进驻商务部杭州:企业拒绝工资集体协商 最高罚款财政部:中国有信心完成经济增长7.5艾弗森正式宣布退役 称至死都是一名7国锦赛-丁俊晖6:1胜进8强 世界排46名中国与印度非法采金者在加纳被捕杭州新增房源远超成交量 很多板块挑选国际足联主席公开嘲讽C罗 重压之下只苹果因电池问题召回iPhone 5s郎平笑称自己是劳模 自5月初接手几乎歌诗达·维多利亚号下月狮城起航新修改的消费者权益保护法大别山深处有条老街叫“晓天”环渤海区域合作市长联席会议太原召开加强民族团结创造雪域高原新辉煌第72届威尼斯国际电影节闭幕“学院批评发出自己的声音”不是伪命题叙利亚说书艺人用制度管控和规约文艺评奖抗战老兵获赠医疗康复设备新媒体一日·9月13日制度、角色与文学
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘