gpt4 book ai didi

scapy - 了解 Scapy "Mac address to reach destination not found. Using broadcast."警告

转载 作者:行者123 更新时间:2023-12-03 14:55:36 33 4
gpt4 key购买 nike

如果我生成一个没有任何上层有效载荷的以太网帧并使用 sendp() 在第二层发送它,那么我会收到 "Mac address to reach destination not found. Using broadcast."警告和帧放入线路确实使用 ff:ff:ff:ff:ff:ff 作为目标 MAC 地址。为什么会这样? Scapy 不应该准确发送我构建的框架吗?

我制作的包如下所示:

>>> ls(x)
dst : DestMACField = '01:00:0c:cc:cc:cc' (None)
src : SourceMACField = '00:11:22:33:44:55' (None)
type : XShortEnumField = 0 (0)
>>> sendp(x, iface="eth0")
WARNING: Mac address to reach destination not found. Using broadcast.
.
Sent 1 packets.
>>>

最佳答案

大多数遇到此问题的人都错误地使用了 send() (或 sr()sr1()srloop())而不是 sendp() (或 srp()srp1()srploop() )。作为记录,“没有- p”的功能类似于 send()用于发送第 3 层数据包( send(IP()) ),而“with- p”变体用于发送第 2 层数据包( sendp(Ether() / IP()) )。

如果您定义 x就像我在下面做的那样,使用 sendp() (而不是 send() )并且您仍然遇到此问题,您应该尝试使用项目的 git 存储库中的最新版本(请参阅 https://github.com/secdev/scapy )。

我试过了:

>>> x = Ether(src='01:00:0c:cc:cc:cc', dst='00:11:22:33:44:55')
>>> ls(x)
dst : DestMACField = '00:11:22:33:44:55' (None)
src : SourceMACField = '01:00:0c:cc:cc:cc' (None)
type : XShortEnumField = 0 (0)
>>> sendp(x, iface='eth0')
.
Sent 1 packets.

同时我正在运行 tcpdump:
# tcpdump -eni eth0 ether host 00:11:22:33:44:55
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
12:33:47.774570 01:00:0c:cc:cc:cc > 00:11:22:33:44:55, 802.3, length 14: [|llc]

关于scapy - 了解 Scapy "Mac address to reach destination not found. Using broadcast."警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18625072/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com