在WinNT及Win2000中实现读取网卡物理地址的一段C程序,熟悉C的人员可作参考改进。
发表于:2007-06-30来源:作者:点击数:
标签:
#include windows .h #include wincon.h #include s td lib.h #include stdio.h #include time.h typedef struct _ASTAT_ { ADAPTER_STATUS adapt; NAME_BUFFERNameBuff [30]; }ASTAT, * PASTAT; ASTAT Adapter; void main (void) { NCB ncb; UCHAR uRetCode;
#include <
windows.h>
#include <wincon.h>
#include <s
tdlib.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];
memset( &ncb, 0, sizeof(ncb) );
ncb.ncb_command = NCBRESET;
ncb.ncb_lana_num = 0;
uRetCode = Netb
ios( &ncb );
printf( "The NCBRESET return code is: 0x%x \n", uRetCode );
memset( &ncb, 0, sizeof(ncb) );
ncb.ncb_command = NCBASTAT;
ncb.ncb_lana_num = 0;
strcpy( ncb.ncb_callname, "* " );
ncb.ncb_buffer = (char *) &Adapter;
ncb.ncb_length = sizeof(Adapter);
uRetCode = Netbios( &ncb );
printf( "The NCBASTAT return code is: 0x%x \n", uRetCode );
if ( uRetCode == 0 )
{
printf( "The Ethernet Number is: %02x%02x%02x%02x%02x%02x\n",
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] );
}
}
原文转自:http://www.ltesting.net