快速遍历局域网mac+ip
我刚刚接触网络数据这块知识。
初学了一点arp相关知识,想通过编程(C/C++)实现。
想法是这样的,通过“arp请求”广播,获得局域网的全网mac。然后再通过rarp获得局域网的某台ip。
1,我想问一下这样的想法可行不?
2,有没有相关书籍可借鉴?我正在看tcp/ip卷,可惜的是没有去看代码。。。
[解决办法]
“通过“arp请求”广播,获得局域网的全网mac”: 理解楼主这句话的意思是通过发送arp请求广播获取局域网内的所有mac地址。 如果此方法可行的话,整个局域网内的ip地址和mac地址映射表也就获取到了,这时再通过rarp获得局域网的某台ip似乎没多大必要,因为映射表中已经包含了。
1、实际上“通过“arp请求”广播,获得局域网的全网mac”是行不通的,ARP协议的本质是主机在只知道同一物理网络中目的主机的IP地址的情况下找到目的主机的物理地址, 同时ARP协议格式定义也只能包含一个目标主机的物理地址和IP地址对。主机发出arp广播请求后并不是没台主机都相应的,只有IP地址与请求包中一致的主机才会发送响应包,响应包中包含目的主机的物理地址。
2、“通过rarp获得局域网的某台ip”,其实这个也不恰当, rarp协议是为帮助自身获取IP地址的,然后使用IP地址进行通讯,而不是根据任意一个物理地址获取其对应的IP地址。
用TCP/IP进行网际互联 书中对协议原理介绍的很详细。