[英]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.