我已经在Scapy中实现了自定义数据包/协议,并将其发送到网络上的设备。自定义协议是一种硬件广播,用于发现接收设备的mac地址。 使用wireshark,我已经确认设备正在响应数据包,但是当我执行以下操作时:
def check_connections(interface):
src_mac = get_if_hwaddr(interface)
dest_mac = 'FF:FF:FF:FF:FF:FF'
packet = Narp(dest=dest_mac, src=src_mac)
response = srp1(packet, iface=interface, verbose=False, timeout=2)
print response
响应是无类型的,这意味着scapy无法感知到响应。
在wireshark中,从响应设备发送的数据包被寻址到我用来发送数据包的相同硬件接口。
您知道什么原因会导致漏斗无法将传入数据包识别为响应?
答案 0 :(得分:1)
您需要为Scapy实现匹配答案的方法。
看看https://stackoverflow.com/a/27974093/5459467。它说明您需要实现answers
。
您可以在网上找到很多代码示例。