get Net card information

#include    < winsock2.h >  
#include   
< stdio.h >        
#include   
< stdlib.h >        
#include   
< httpext.h >        
#include   
< windef.h >        
#include   
< Nb30.h >  

#pragma    comment(lib, "ws2_32.lib ") 
#pragma    comment(lib, "netapi32.lib ") 

void    CheckIP( void )   

  WSADATA   wsaData; 
  
char   name[155]; 
  
char   *ip; 
  PHOSTENT   hostinfo;   
  
if   (   WSAStartup(   MAKEWORD(2,0),   &wsaData   )   ==   0   )   
  
{     
    
if(   gethostname   (   name,   sizeof(name))   ==   0)   
    
{   
      
if((hostinfo   =   gethostbyname(name))   !=   NULL)   
      

        ip   
=   inet_ntoa   (*(struct   in_addr   *)*hostinfo-> h_addr_list);   
        printf( 
"   IP地址:   %s  ",ip); 
      }
   
    }
   
    WSACleanup(   ); 
  }
   
}
   

int    getMAC( char     *    mac)           
{           
  NCB   ncb;           
  typedef   
struct   _ASTAT_           
  

    ADAPTER_STATUS       adapt;     
    NAME_BUFFER       NameBuff       [
30];           
  }
ASTAT,   *PASTAT; 
  
  ASTAT   Adapter;           
  typedef   
struct   _LANA_ENUM           
  

  UCHAR   length;     
  UCHAR   lana[MAX_LANA];           
  }
LANA_ENUM;           

  LANA_ENUM   lana_enum;                 
  UCHAR   uRetCode;           
  memset(
&ncb,   0,   sizeof(ncb));           
  memset(
&lana_enum,   0,   sizeof(lana_enum));           
        
  ncb.ncb_command   
=   NCBENUM;           
  ncb.ncb_buffer   
=   (unsigned   char   *)&lana_enum;           
  ncb.ncb_length   
=   sizeof(LANA_ENUM);           
  uRetCode   
=   Netbios(&ncb);           
  
if(uRetCode   !=   NRC_GOODRET)           
  
return   uRetCode;           
        
  
for(int   lana=0;   lana <lana_enum.length;   lana++)           
  

    ncb.ncb_command   
=   NCBRESET;   
    ncb.ncb_lana_num   
=   lana_enum.lana[lana];   
    uRetCode   
=   Netbios(&ncb);       
    
if(uRetCode   ==   NRC_GOODRET)     
    
break;   
  }
   
  
if(uRetCode   !=   NRC_GOODRET) 
    
return   uRetCode;           
        
  memset(
&ncb,   0,   sizeof(ncb));     
  ncb.ncb_command   
=   NCBASTAT;     
  ncb.ncb_lana_num   
=   lana_enum.lana[0]; 
  strcpy((
char*)ncb.ncb_callname,   "");   
  ncb.ncb_buffer   
=   (unsigned   char   *)&Adapter; 
  ncb.ncb_length   
=   sizeof(Adapter); 
  uRetCode   
=   Netbios(&ncb);     
  
if(uRetCode   !=   NRC_GOODRET)       
    
return   uRetCode;           
  sprintf(mac, 
"%02X-%02X-%02X-%02X-%02X-%02X ",           
  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]     
  );   
  
return   0;       
}
   

int    main( void

  CheckIP(); 
  
char       mac[200];       
  getMAC(mac);       
  printf( 
"     mac地址   :     %s     ",mac);       
  
return   0
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值