scapy sr功能问题

时间:2015-07-29 08:05:48

标签: python sockets tcp scapy

使用scapy的sr函数时,我无法接收到请求的所有相关数据包。

ans, unans = sr(IP(dst="172.xxx.xxx.xxx")/TCP(dport=80,flags="S"))

返回:

Received 2 packets, got 1 answers, remaining 0 packets

我首先得到的是ICMP重定向。之后我从SA的本地服务部门得到了答案。有时它会告诉我收到了两个数据包,这是有道理的,但是当我在摘要中查看它时会打印出以下内容:

<bound method SndRcvList.summary of <Results: TCP:0 UDP:0 ICMP:1 Other:0>>

和摘要()我发现:

IP / TCP 172.xxx.xxx.xxx:ftp_data > 172.zzz.zzz.zzz:http S ==> IP / ICMP 172.yyy.yyy.yyy > 172.xxx.xxx.xxx redirect host-redirect / IPerror / TCPerror

首先,我想知道我的SA标记的TCP数据包在哪里。当我查看网络转储时,我肯定会在ICMP数据包之后看到它。我已经确保在运行和不运行tcpdump的情况下运行scapy,以防万一它会干扰,它不应该。

我还尝试设置和增加超时,以防它没有等待足够长的时间来接收TCP数据包。没用。

我也在环回接口,本地局域网和位于互联网上的系统上尝试过。到处都是相同的

有关错误位置的任何想法?

1 个答案:

答案 0 :(得分:0)

Scapy认为这个ICMP数据包是对初始TCP SYN请求(它实际上是)的响应。尝试使用import UIKit class CustomTextField: UITextField { override func canPerformAction(action: Selector, withSender sender: AnyObject?) -> Bool { if action == "paste:" { return false } return super.canPerformAction(action, withSender: sender) } } 获取多个响应数据包。