资讯   |   开发   |   选机中心   |   产品大全 | IBM | 惠普 | 联想 | 戴尔 | 苹果 | 神舟
更多: | 华硕 | 明基 | 方正 | 紫光 | TCL | 夏新 | 联宝 | 宏碁 | 七喜 | 长城 | 清华同方 | 海尔 | 三星 | 东芝 | 索尼 | 富士通 | LG | 技术 | ddnoon
当前位置:笔记本 > 软件开发 >
Advertisement
文章正文

读取MAC地址的疑问,怎样用C函数来读取?

类型:转载   责任编辑:asp.net   日期:2007/05/23


热门软件下载:


   

疑问如下:  
  1,注册表中存有PC机网卡的MAC地址吗?这个地址是什么类型的?  
  2,我以为是二进制文件,然后就将其数值写入了自己定义的一个char型的数组(6个元素的char型数组)中。  
  但是,做了第2步操作之后打印出的数组(MAC地址)却不是我想象的那种"00   00   0E   6F"这种形式  
  能否有高手帮帮我~

网友回答:

发表者:grooving

 
      得到任何ip地址的mac地址。用ARP协议。  
       
   
      sin.sin_family   =   AF_INET;  
      if(inet_aton(argv[1],   &sin.sin_addr)==0)   {  
          printf("%s:   IP   address   %s   not   valid\n",argv[0],argv[1]);  
          exit(0);  
      }  
       
       
      memcpy(&myarp.arp_pa,   &sin,   sizeof   myarp.arp_pa);                    
      strcpy(myarp.arp_dev,   "eth0");  
      if   ((sockfd   =   socket(AF_INET,   SOCK_DGRAM,   0))   ==   -1)   {  
          printf("%s:   cannot   open   socket\n",argv[0]);  
          exit(0);  
      }  
      if   (ioctl(sockfd,   SIOCGARP,   &myarp)   ==   -1)   {  
          printf("%s:   no   entry   in   arp_cache   for   %s\n",argv[0],argv[1]);  
          exit(0);  
      }  
      ptr   =   &myarp.arp_ha.sa_data[0];  
      printf("%s:   MAC   address   for   %s   is   :   ",argv[0],argv[1]);  
      printf("%x:%x:%x:%x:%x:%x\n",*ptr,   *(ptr+1),*(ptr+2),  
    *(ptr+3),*(ptr+4),*(ptr+5));  
 


 

 
热门推荐笔记本: IBM笔记本
相关文章:
webmaster:popbb@126.com   最佳浏览:1024X768 MSIE
©2007 popbb.net All Rights Reserved