簡體   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