请问如何获得网络内各主机的IP和MAC地址的对应关系? 我想要的是可用于编程的源代码。who can help me? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 [email protected]thank you! 能否通过使用netbios,或者象NBTSTAT那样得到MAC地址最重要的是效率高! 有源代码??我也要!![email protected]谢谢!!!! zeclmj你的方法是调用GetIpNetTable()读取arp表的,但是arp表中并不一定有网络中的所有机器的MAC地址呀! 在DOS模式下打arp -a,就能列出 pengkejian(悠悠荡荡) 可以,写过,有ASM和VC两种版本,要哪个。 Julienjut(秋水): 给我VC的吧,万分感谢! [email protected] 本人写的一个函数,取本机的MAC地址://需要netapi32.lib 库和nb30.h头文件//自定义结构typedef struct _ASTAT_{ ADAPTER_STATUS adapt; NAME_BUFFER NameBuff[30];}ASTAT,*PASTAT;//函数char *GetLocalMacAddress ()//{ ASTAT Adapter;//ASTAT,自定义的结构 NCB ncb; UCHAR uRetCode; memset(&ncb,0,sizeof(ncb)); ncb.ncb_command=NCBRESET; ncb.ncb_lana_num=0; uRetCode=Netbios(&ncb); if(uRetCode!=0) AfxMessageBox("网卡初始化失败!"); memset(&ncb,0,sizeof(ncb)); ncb.ncb_command=NCBASTAT; ncb.ncb_lana_num=0; //ncb_callname的第一字符是*表示取得本机信息 memset(ncb.ncb_callname,'*',1); ncb.ncb_buffer=(unsigned char *)&Adapter; ncb.ncb_length=sizeof(Adapter); uRetCode=Netbios(&ncb); char CardNumber[12]; if(uRetCode==0) { int i; char s[1]; for(i=0;i<6;i++) { itoa((int)Adapter.adapt.adapter_address [i],s,16); strncpy(CardNumber+i*2,s,2); } CardNumber[12]='\0'; } return CardNumber;}别忘 了给分! 上面两位大哥,你们取的都是本机的MAC地址!有没有取其他机器MAC地址的方法?(光读ARP表是不够的,ARP表中不一定有网络内的所有IP—MAC对应信息) 可以通过IP地址取MAC但要能PING通 将memset(ncb.ncb_callname,'*',1);一句中的*号换成要取的机器IP即可!! To: pursuer_zhao(永远有多远) 谢谢!!能不能进一步取得其他机器的多个MAC地址?? To: pursuer_zhao(永远有多远) 分已经给了。To: ALL 能不能进一步取得其他机器的多个MAC地址?? (还会再给分的) sdk截图函数编写 该用MFC还是windows API?? vfw里面的两个问题,请有经验的前辈来指点一下! 承蒙大家和大版主抬爱,就任基础版小版主,散分。前十位给分。6 .exe的COM服务器组件如何注册?急,在线等,谢谢 串口编程的问题 视图类问题 数据类型转换 有MFC的问题,请教一下高手,帮帮忙. 请高手指点:怎样可以知道wsock32.dll里面有哪些函数。如果有高手知道,请告诉小弟一声,感激不尽! 怎么样将文件存入指定路径? 这样在picture控件动态的加入bmp图象.
thank you!
最重要的是效率高!
[email protected]
谢谢!!!!
可以,写过,有ASM和VC两种版本,要哪个。
给我VC的吧,万分感谢! [email protected]
//需要netapi32.lib 库和nb30.h头文件
//自定义结构
typedef struct _ASTAT_
{
ADAPTER_STATUS adapt;
NAME_BUFFER NameBuff[30];
}ASTAT,*PASTAT;
//函数
char *GetLocalMacAddress ()//
{
ASTAT Adapter;//ASTAT,自定义的结构
NCB ncb;
UCHAR uRetCode;
memset(&ncb,0,sizeof(ncb));
ncb.ncb_command=NCBRESET;
ncb.ncb_lana_num=0;
uRetCode=Netbios(&ncb);
if(uRetCode!=0)
AfxMessageBox("网卡初始化失败!");
memset(&ncb,0,sizeof(ncb));
ncb.ncb_command=NCBASTAT;
ncb.ncb_lana_num=0;
//ncb_callname的第一字符是*表示取得本机信息
memset(ncb.ncb_callname,'*',1); ncb.ncb_buffer=(unsigned char *)&Adapter;
ncb.ncb_length=sizeof(Adapter); uRetCode=Netbios(&ncb);
char CardNumber[12];
if(uRetCode==0)
{
int i;
char s[1];
for(i=0;i<6;i++)
{
itoa((int)Adapter.adapt.adapter_address [i],s,16);
strncpy(CardNumber+i*2,s,2);
}
CardNumber[12]='\0';
}
return CardNumber;
}别忘 了给分!
有没有取其他机器MAC地址的方法?(光读ARP表是不够的,ARP表中不一定有网络内的所有IP—MAC对应信息)
一句中的*号换成要取的机器IP即可!!
谢谢!!能不能进一步取得其他机器的多个MAC地址??
分已经给了。To: ALL
能不能进一步取得其他机器的多个MAC地址?? (还会再给分的)