麻烦高手解释下这段代码,要详细的

andywiliang 2008-06-17 01:37:59
CString getmac(CString ip)
{
解释以下代码,我是个菜鸟,请解释详细点,包括定义的是什么来的,谢谢


unsigned char byMAC[6];
ULONG macAddLen = 6;
IPAddr dwIP;
dwIP=inet_addr(ip);
CString temp;
if (SendARP(dwIP, (unsigned long)NULL,(PULONG)byMAC, &macAddLen) == NO_ERROR )
{
temp.Format("%.2x-%.2x-%.2x-%.2x-%.2x-%.2x",byMAC[0],byMAC[1],byMAC[2],byMAC[3],byMAC[4],byMAC[5],byMAC[6]);
return temp;
}
else
{
return "error";
}
}

...全文
103 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
andywiliang 2008-06-19
  • 打赏
  • 举报
回复
深奥的东西啊................
zzultc 2008-06-19
  • 打赏
  • 举报
回复
8楼详细。
顶8楼!
凌乱1980 2008-06-19
  • 打赏
  • 举报
回复
通过调用SendArp函数,获取一个IP对应的MAC地址,SendArp函数是API来的
kigurumi 2008-06-19
  • 打赏
  • 举报
回复
用sendarp函数获取指定ip的mac地址
zyw052553 2008-06-19
  • 打赏
  • 举报
回复
CString getmac(CString ip)
{
//该函数是用来获取ip的mac地址
unsigned char byMAC[6]; //存储ip的mac地址
ULONG macAddLen = 6; //mac地址长度
IPAddr dwIP; //为一无符号的长整型数
dwIP=inet_addr(ip); //将字符串点格式的IP地址转换为无符号长整型形式
CString temp;
if (SendARP(dwIP, (unsigned long)NULL,(PULONG)byMAC, &macAddLen) == NO_ERROR )
//发送ARP请求获取指定IP地址相应的物理地址
//
//如果函数执行成功,返回值为 NO_ERROR.
//如果函数执行失败, 使用 FormatMessage 从返回的错误代码中得到消息串
//
//DWORD SendARP(
// IPAddr DestIP, //[输入] 目标IP地址, IPAddr 结构. ARP请求试图获取指定IP地址相应的物理地址。
// IPAddr SrcIP, //[输入] 发送者IP地址, IPAddr 结构.这个参数是可选的,调用者可以指定参数为NULL。
// PULONG pMacAddr, //[输出] 指向一个ULONG 变量数组. DestIP 指定的IP地址的物理地址获取存放在数组的首六个字节。
// PULONG PhyAddrLen //[输入, 输出] 输入时, 指定缓冲区最大字节数接受MAC地址。输出时t, 指定 pMacAddr 被写入的字节数.
//);
//
{
temp.Format("%.2x-%.2x-%.2x-%.2x-%.2x-%.2x",byMAC[0],byMAC[1],byMAC[2],byMAC[3],byMAC[4],byMAC[5],byMAC[6]);
//将对byMac格式化即 00-00-00-00-00-00
return temp;
}
else
{
return "error";
}
}
僵哥 2008-06-17
  • 打赏
  • 举报
回复
我是来看详细解释
ouyh12345 2008-06-17
  • 打赏
  • 举报
回复
mdsn SendARP:
DWORD SendARP(
IPAddr DestIP, // destination IP address
IPAddr SrcIP, // IP address of sender
PULONG pMacAddr, // returned physical address
PULONG PhyAddrLen // length of returned physical addr.
);

unsigned long inet_addr(
const char FAR *cp
);

因此,IPAddr是unsigned long,包含了suitable binary representation
andywiliang 2008-06-17
  • 打赏
  • 举报
回复
没人知道吗?
andywiliang 2008-06-17
  • 打赏
  • 举报
回复
IPAddr dwIP;
这个是什么定义啊???????????/
andywiliang 2008-06-17
  • 打赏
  • 举报
回复
下面定义的是什么,是类吗?
ULONG macAddLen = 6;
IPAddr dwIP;
dwIP=inet_addr(ip);
ouyh12345 2008-06-17
  • 打赏
  • 举报
回复
关键代码就2段
dwIP=inet_addr(ip);
SendARP(dwIP, (unsigned long)NULL,(PULONG)byMAC, &macAddLen)

查msdn

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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