gpt4 book ai didi

python-2.7 - 如何使用 Scapy 提取 HTML 代码?

转载 作者:可可西里 更新时间:2023-11-01 02:51:06 25 4
gpt4 key购买 nike

我最近开始使用 scapy Python 2.x 的库 我发现关于 sniff() 函数的文档很少。我开始玩弄它,发现我可以在非常低的级别查看 TCP 数据包。到目前为止,我只找到了信息数据。例如:

这是我在 scapy 终端中输入的内容:

A = sniff(filter="tcp and host 216.58.193.78", count=2)

这是向 google.com 请求主页的请求:

<Ether  dst=e8:de:27:55:17:f3 src=00:24:1d:20:a6:1b type=0x800 |<IP  version=4L ihl=5L tos=0x0 len=60 id=46627 flags=DF frag=0L ttl=64 proto=tcp chksum=0x2a65 src=192.168.0.2 dst=216.58.193.78 options=[] |<TCP  sport=54036 dport=www seq=2948286264 ack=0 dataofs=10L reserved=0L flags=S window=29200 chksum=0x5a62 urgptr=0 options=[('MSS', 1460), ('SAckOK', ''), ('Timestamp', (389403, 0)), ('NOP', None), ('WScale', 7)] |>>>

这是响应:

<Ether  dst=00:24:1d:20:a6:1b src=e8:de:27:55:17:f3 type=0x800 |<IP  version=4L ihl=5L tos=0x0 len=60 id=42380 flags= frag=0L ttl=55 proto=tcp chksum=0x83fc src=216.58.193.78 dst=192.168.0.2 options=[] |<TCP  sport=www dport=54036 seq=3087468609 ack=2948286265 dataofs=10L reserved=0L flags=SA window=42540 chksum=0xecaf urgptr=0 options=[('MSS', 1430), ('SAckOK', ''), ('Timestamp', (2823173876, 389403)), ('NOP', None), ('WScale', 7)] |>>>

使用这个函数,有没有一种方法可以从响应中提取 HTML 代码?

此外,这些数据包是什么样子的?

最后,为什么这两个数据包几乎相同?

最佳答案

您示例中的段“几乎相同”,因为它们是属于 TCP handshake 的 TCP SYN 和 SYN-ACK 段, HTTP 请求和响应在连接期间出现(通常在 ESTABLISHED 状态,除非使用 TCP Fast Open 选项)因此您需要在握手后查看段以获取您感兴趣的数据。

         SYN
C ---------------> S
SYN-ACK
C <--------------- S
ACK
C ---------------> S
HTTP request
C ---------------> S
ACK
C <--------------- S
HTTP response
C <--------------- S <= Here is the server's answer
ACK
C ---------------> S
...

您可以使用 Scapy 的 Raw 层在您的情况下提取 TCP 之上的数据(例如 pkt[Raw])

关于python-2.7 - 如何使用 Scapy 提取 HTML 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38385646/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com