scapy sr函数不返回答案

时间:2016-05-07 09:27:12

标签: python ubuntu networking scapy tcp-ip

我正在尝试使用scapy进行隐形SYN扫描。我读了关于sr函数的scapy usage documantation。它应该对我发送的数据包给出响应 例如,我试图运行以下命令:

>>> ans,unans = sr(IP(dst="192.168.1.1")/TCP(dport=[22,80,443],flags="S"))

即,我想通过TCP / IP发送一个SYN数据包到192.168.1.1 我原本希望得到以下答案,几乎立即:

>>> Begin emission:
.......*.**.......Finished to send 3 packets.
**.*.*..*..................
Received 362 packets, got 3 answers, remaining 0 packets

但相反,我让它运行超过2分钟并且sr没有完成。此外,在强制停止(CTRL + C)后,我得到了以下答案:

Begin emission:
.Finished to send 3 packets.
......................................^C
Received 2040 packets, got 0 answers, remaining 3 packets

我还尝试了更多的例子,他们最终都是这样的 有谁知道为什么会这样?我该如何解决?我的网络配置有问题吗?

另外,我想补充一点,我已经在两台不同的计算机上尝试了两台不同的ubuntu VM,但是在同一个家庭网络上。

感谢。

1 个答案:

答案 0 :(得分:1)

您需要添加超时选项,否则sr()将永远运行

ans,unans = sr(IP(dst="192.168.1.1")/TCP(dport=[22,80,443],flags="S", timeout =1))
  

超时:发送最后一个数据包后等待的时间。通过   默认情况下,sr将永远等待,用户将不得不中断   (CtrlC)当他期望没有更多答案的时候。