首页 > 解决方案 > ValueError:尝试使用 scapy + 代码创建 DNS 消息时解包的值太多(预期为 2)在 CMD 中使用时不返回任何内容

问题描述

我正在尝试创建一个使用 Scapy 进行 DNS 查询的函数。但我在创建查询时遇到了错误。

这是我的代码:

from scapy.layers.inet import IP, UDP
from scapy.layers.dns import DNS, DNSQR
from scapy.all import sr1

message = IP(dst="8.8.8.8") / UDP(dport=53, sport=8280) / DNS(rd=1, qd=DNSQR(qname=target), iface="eth1")
result = sr1(message, verbose=10)
print(result[DNS].summary())

我还注意到,当我在 CMD 中执行它时,我的代码根本没有返回任何 IP,它与我相信的问题没有任何联系,但它是一个问题,尽管你也可以修复它。

谢谢大家 :D

重要提示:我能够解决问题。似乎 Scapy 2.4.2 被窃听了。我在 PyCharm 2018 中使用了它,scapy 在识别我给他的接口时遇到了问题,即使它们应该被识别为有效接口。要解决这个问题,只需将您的版本降级到 2.4.0,它应该可以再次工作!:D

标签: pythonscapyunpack

解决方案


推荐阅读