Scapy/ARP 请求不适用于多个/范围 IP。仅针对单个 IP 请求
Posted
技术标签:
【中文标题】Scapy/ARP 请求不适用于多个/范围 IP。仅针对单个 IP 请求【英文标题】:Scapy/ARP request does not work for multiple/range IPs. Only for a single IP request 【发布时间】:2020-10-24 00:26:18 【问题描述】:我正在创建一个简单的函数,它应该收集我网络中所有设备的 MAC 地址。
import scapy.all as scapy
def network_scan(ip):
arp_request = scapy.ARP(pdst=ip)
print(arp_request.summary())
network_scan("10.0.2.1/24")
此 ARP 请求返回“ARP who has ?? says ??”
但是当我尝试请求单个IP的MAC地址时,效果很好:
network_scan("10.0.2.1")
单IP输出:有10.0.2.1的ARP说myIP
【问题讨论】:
嗨,在这里检查类似的问题***.com/questions/56226523/… ?这是否回答了您的问题?我自己尝试了链接中的解决方案并且它有效。让我知道这是否适合您。确保按照链接中的说明克隆并安装正确的 scapy 版本。最好的问候。 【参考方案1】:您传递给层 ARP 的值就可以了。但是您的代码没有向网络发送/接收任何数据包。
您可以在此处查看完整的解决方案:https://www.thepythoncode.com/article/building-network-scanner-using-scapy
现在,为什么它似乎适用于您的 IP? arp_request.summary() 尝试解析 IP 并看到它是你的。 但是扫描部分还是需要发包的
【讨论】:
以上是关于Scapy/ARP 请求不适用于多个/范围 IP。仅针对单个 IP 请求的主要内容,如果未能解决你的问题,请参考以下文章