请教VC中得到MAC地址的方法

game_boy 2001-12-30 10:34:41
应该有个函数吧,请教各位:)
...全文
226 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
yug 2002-01-26
  • 打赏
  • 举报
回复
看看
game_boy 2002-01-15
  • 打赏
  • 举报
回复
谢谢大家
zcq111 2002-01-07
  • 打赏
  • 举报
回复
lurenfu(我好烦):
请问我在Windows下,我找不到struct ifreq (即ifrreg)结构,有什么办法?谢谢
Bardo 2002-01-03
  • 打赏
  • 举报
回复
用ioctl的SIOCGHWADDR是否可以获得登录用户的mac地址呢?
walkonthesky 2002-01-03
  • 打赏
  • 举报
回复
记号
Bardo 2002-01-03
  • 打赏
  • 举报
回复
再请问一下,用sendARP是否不受防火墙的影响?
对拨号上网用户是否也能获取?
谢谢了!
lurenfu 2002-01-03
  • 打赏
  • 举报
回复
应该是本机某网卡的地址,网卡名由你指定,你要想得到非本机的MAC地址,可以发一arp请求的数据包
y_and_y 2002-01-01
  • 打赏
  • 举报
回复
upup
lurenfu 2001-12-31
  • 打赏
  • 举报
回复
用ioctl的SIOCGHWADDR命令可获得网卡的MAC地址,要求参数是struct ifreq,ifreq->ifr_name为你想要查询的网卡(eth0, eth1...)。
zb_china 2001-12-31
  • 打赏
  • 举报
回复
NetBIOS不好用,不能正确取得多IP网卡的地址
win2000的sendarp函数倒是很好用,但只能在2000上用
misterliwei 2001-12-31
  • 打赏
  • 举报
回复
可以用NETBIOS编程的方法,外面的取得MAC的方法基本都是这样。
superdreamer 2001-12-30
  • 打赏
  • 举报
回复
可以通过注册表获得,也可以通过NETBIOS协议取得(不知我记错没有)WINDOWS 网络编程技术 一书上有!
tide 2001-12-30
  • 打赏
  • 举报
回复
//得到主机名和网卡编号.

int getMAC(char * mac)
{
NCB ncb;

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


typedef struct _LANA_ENUM { // le
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;

}
Clevor 2001-12-30
  • 打赏
  • 举报
回复
没有现成的API。但能找到,自己加上其实也就是API了。
game_boy 2001-12-30
  • 打赏
  • 举报
回复
谢谢,请问有没有API提供?
在程序里如何得到呢?
mkiss 2001-12-30
  • 打赏
  • 举报
回复
nbtstat -a ip
game_boy 2001-12-30
  • 打赏
  • 举报
回复
没有人知道么?
ljunfa 2001-12-30
  • 打赏
  • 举报
回复
tongyi : ego(花花小候) 
ego 2001-12-30
  • 打赏
  • 举报
回复
想知道指定IP地址的MAC.可以如下操作:
ping xxx.xxx.xxx.xxx
arp -a
第二步可得所ping的IP的MAC

4,356

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧