如何获取连接到无线AP的设备的MAC和IP

kay2010hh 2012-11-07 08:28:41
我把自己电脑设置成了一个无线AP,周围的手机、电脑可以接入我的无线AP上网。

现在我想知道如何获取 这些接入无线AP的设备的MAC、IP、名称
...全文
1018 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
圆道 2012-11-07
  • 打赏
  • 举报
回复
楼上可以,要6
Geoff08Zhang 2012-11-07
  • 打赏
  • 举报
回复
得到MAC你可以参考这里的BootClnt,下面是摘录的代码,得到IP参考BootSrv->bootp_handle_request函数: http://download.csdn.net/detail/geoff08zhang/4571358 -------------------------------------- #pragma comment(lib,"netapi32.lib") /* netbios api */ typedef struct adp_name_s { ADAPTER_STATUS adapt; NAME_BUFFER name[4]; } ADP_NAME; /************************************************************************** * * 函数功能: 得到以太网的硬件地址. * * 参数说明: [OUT] mac_addr, 硬件地址缓冲区. * [IN] length, mac_addr 的长度. * * 返 回 值: 成功返回 0, 失败返回 -1. * **************************************************************************/ static int bootp_get_mac_addr(char *mac_addr, int length) { NCB ncb; UCHAR ret_code; LANA_ENUM lana_enum; ADP_NAME adapter; int i; /* 得到 LANA 个数 */ memset(&ncb, 0, sizeof(ncb)); ncb.ncb_command = NCBENUM; ncb.ncb_buffer = (UCHAR *)&lana_enum; ncb.ncb_length = sizeof(lana_enum); ret_code = Netbios(&ncb); for (i = 0; i < lana_enum.length; i++) { /* 重设网卡 */ memset(&ncb, 0, sizeof(ncb)); ncb.ncb_command = NCBRESET; ncb.ncb_lana_num = lana_enum.lana[i]; ret_code = Netbios(&ncb); /* 得到硬件信息 */ memset(&ncb, 0, sizeof (ncb)); ncb.ncb_command = NCBASTAT; ncb.ncb_lana_num = lana_enum.lana[i]; memset(ncb.ncb_callname, 0x20, NCBNAMSZ); ncb.ncb_callname[0] = '*'; ncb.ncb_buffer = (char *)&adapter; ncb.ncb_length = sizeof(adapter); ret_code = Netbios(&ncb); /* NRC_GOODRET 表示成功, 0xFE 是以太网 */ if (ret_code != NRC_GOODRET || adapter.adapt.adapter_type != 0xFE) continue; /* 到达这里说明可以得到硬件地址 */ length = length > BOOTP_HRD_LEN ? BOOTP_HRD_LEN : length; memcpy(mac_addr, adapter.adapt.adapter_address, length); return 0; } return -1; }

18,356

社区成员

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

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