微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Scapy DHCP-Discover 导致数据包格式错误

如何解决Scapy DHCP-Discover 导致数据包格式错误

我是网络新手。并且发现使用 scapy 是学习不同协议的好方法

我正在尝试发送 DHCPdisCOVER 数据包,但是在wireshark 中它显示为格式错误的数据包。

这是我用来构建数据包的代码(我的 MAC 地址已被排除并替换为“[我的 MAC 地址]”:

ethernet = Ether(dst='ff:ff:ff:ff:ff:ff',src="[my MAC address]",type=0x800)
ip = IP(src ='0.0.0.0',dst='255.255.255.255')
udp = UDP (sport=68,dport=67)
fam,hw = get_if_raw_hwaddr("Wi-Fi")
bootp = BOOTP(chaddr = hw,ciaddr = '0.0.0.0',xid =  0x01020304,flags= 1)
dhcp = DHCP(options=[("message-type","discover"),"end"])
packet = ethernet / ip / udp / bootp / dhcp
scap.send(packet,iface="Wi-Fi")

这是数据包的wireshark结果:

14 2.065968 ASUSTekC_a5:fa:7a broadcast IPX 300 [Malformed Packet]

谢谢!

解决方法

如果您要指定第 2 层,则需要改用发送/接收函数的 *p variants

scap.sendp(packet,iface="Wi-Fi")

我不得不承认,我还没有仔细研究为什么否则会导致数据包格式错误,但我认为它试图向数据包添加第 2 层协议对您来说,最终数据包中有两个这样的层。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。