繁体   English   中英

发送scapy IP数据包,没有接口IP错误

[英]Sending scapy IP packet with no interface IP error

我正在尝试使用send(pkt,iface =“eth0”)函数将IP数据包发送到接口,我收到错误:

WARNING: Mac address to reach destination not found. Using broadcast

我试图发送的接口没有IP地址,这就是我喜欢的方式。 如果它有所不同,界面是一个桥(用brctl创建)

IP数据包中存在主机的ARP条目,但似乎scapy没有进行从ARP表中获取MAC所需的查找...

思考?

我认为这是正常的,因为制作有效的ARP请求需要一个IP地址(并且Scapy维护自己的ARP表,独立于OS)。

您可以自己设置目标地址: srp(Ether(dst="[MAC address]")/[...]) 如果您需要先获取MAC地址,请以相同方式创建并发送ARP请求。

要查询Scapy的ARP表,请访问conf.netcache.arp_cache元素,该元素是Scapy特定的dict子类(称为CacheInstance )。

例如,要为主机添加条目(然后使用sr([...])而不是srp(Ether(dst="[MAC address])/[...]) ),请使用:

conf.netcache.arp_cache['[IP address]'] = '[MAC address]'

scapy中以太网帧的默认dst地址(MAC地址)是广播的。 每当您将以太网帧发送到广播地址(ff:ff:ff:ff:ff:ff)时,就会产生此警告,就我而言。 你可以通过这样创建数据包来看到这个:

以太()/ IP()或以太()/ ARP()

而不仅仅是IP()或ARP()。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM