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 请求的主要内容,如果未能解决你的问题,请参考以下文章

Scapy ARP函数在运行时没有给出正确的输出

scapy.srp 不给所有客户

期望脚本不适用于多个密码请求

对一个 IP 范围的多个 HttpClient 异步请求

多个 CORS 适用于 GET 但不适用于 PUT/POST 与飞行前请求 Web api 2

Jquery ui 1.8.10 范围滑块不适用于 jquery 3.4.1