繁体   English   中英

Python Scapy递归DNS查询 - 书中的脚本

[英]Python Scapy Recursive DNS Query - Script from a Book

我正在阅读一本Python书,它有一个安装和使用scapy的教程。 其中一个尝试的脚本是“使用加州理工大学公共DNS服务器的www.oreilly.com的递归DNS查询”。 我不确定为什么有人会因为一个有用的原因而想要这样做。 如果有人也可以解释为什么这是有用的,那将是非常棒的。 :d

我从一开始Scapy的 bin目录, ./bin/scapy ,我的机器上安装该程序后。 scapy的版本是: Welcome to Scapy (2.2.0)

好吧无论如何这里的脚本对我不起作用:

sr1(IP(dst="131.215.9.49")/UDP()/DNS(rd=1,qd=DNSQR(qname="www.oreilly.com")))

所有这一切都是打印:

Begin emission:
Finished to send 1 packets. 
.......tons of never ending dots in the shell.............................
..........................................................................
.......................................................................etc

如何修复此脚本以使其有效? 我使用help()查找了一些函数和/或方法,但这并没有给我足够的信息来解决问题。 我希望熟悉这个的人会出于某种原因读到这个,并帮助我理解这一点。

谢谢您阅读此篇。

节日快乐,

user_loser

它似乎只是你的数据包没有得到任何答案(这是正常的,没有理由为什么131.215.9.49应该回答你的递归查询)。

如果希望sr1()调用终止,可以添加timeout=参数(值以秒为单位)。

如果你想确保131.215.9.49没有应答,但你的sr1()呼叫有效,你可以:

  • 从shell发出host www.oreilly.com 131.215.9.49并检查你得到;; connection timed out; no servers could be reached ;; connection timed out; no servers could be reached ;; connection timed out; no servers could be reached
  • 使用DNS服务器的IP地址更改131.215.9.49(这个应该回答您的递归查询)并检查您是否得到答案。

您还可以了解正在发生的情况,尝试在运行测试时运行tcpdump ,并查看是否发送和/或接收了哪些数据包。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM