金比,
我在工作,现在只能解析而不是在 scapy 中启动连接。所以我会解决你的第二个请求。我们正在查看我在此处提供的内容。包含 html 和 http 请求的层是 (Raw).load 如果数据包包含 html 或 http 请求,我将首先测试该层是否存在(haslayer),然后如果数据包是“http 数据包” “这里只是在 IF 语句中检查 80,但是您可能只使用嗅探网络过滤器中的端口。我在此片段中包含了直接从电线上嗅探或在此处拉入 pcap 的选项。(调整端口等如果您使用的是非标准)
#!/usr/bin/python -tt
from scapy import *
import sys
def parse(pkt):
if pkt.haslayer(TCP) and pkt.getlayer(TCP).dport == 80 and pkt.haslayer(Raw):
print pkt.getlayer(Raw).load
if '-l' in sys.argv:
sniff(prn=parse)
else:
pkts = rdpcap(sys.argv[1])
for pkt in pkts:
parse(pkt)
当然,以此为起点,您可以调整第 8 行,不仅可以选择 dport,还可以选择例如运动。让我知道这是否有帮助,祝你好运!
PS更改以下
from scapy import *
至
from scapy.all import *
取决于你的版本..