2012-11-30 30 views
2

为了执行一个HTTP GET,我需要发送一个分组(该GET/HTTP/1.0 \ n \ n)和等待3个分组:我的GETScapy的等待多个分组

的ACK

的GET答案:HTTP/1.0 200 OK

和变速器

的FIN ACK我发现2种方式:

=>使用SR()具有多选项

=>使用嗅探只是送我的GET请求

  • 对于SR()函数后,这个问题是停止嗅探,唯一的选择是设置超时时间,但我的脚本将测试许多不同的网站,很多不同的时间的答案,可能很难选择一个静态超时值,我相信任何时候都没有网站超过它。

  • 对于嗅探,没有相同的问题,因为我可以将“count”参数设置为只接收3个数据包。但是很难做出足够好的过滤器来确保记录的3个数据包是我想要的3个数据包(并且没有ARP,DNS或其他任何数据)。 但是主要的问题是有时在“sniff”启动之前(在send(GET_PACKET)和answers = sniff(...)之间)出现第一个应答包。在这种情况下,我失去了一些信息,所有后期处理都已损坏。

完美的方法是使用带“count = 3”选项的sr()函数来获得3个数据包,但该选项不存在于sr()中。

Anynone有想法吗?

非常感谢

对不起,我的语言,我是法国人

回答

0

这更多的是一种暗示不是答案,而是问题可能是要检查传输层数据包的应用层请求。您可以通过发送SYN将您的HTTP GET拆分为传输层,等待并回答,然后发送ACK,GET。这里是一个link描述你可能想要的。