有没有方法在实时流量中使用scapy检查数据包?
我想查看通过我的网络接口进来的数据包。
所以我需要做的是:
我正在运行一台转发机器。简单来说,我就像是局域网中计算机的路由器。所以我需要把数据包转发到合适的目的地,这部分我已经搞定了。
接下来的部分是:
- 检查流经我电脑的数据包
- 根据这些数据包的内容做出合适的转发决策
我该如何使用scapy来完成第1步和第2步呢?
1 个回答
4
这很简单,你可以遍历接收到的数据包,然后查看它们的各个字段,按照你的需要发送出去。
这个例子会捕获在接口 eth1 上的所有数据包,如果数据包的源 IP 地址以 5 结尾,就会把所有的 IP 数据包发送到 1.1.1.1:
from scapy.all import *
for pkt in sniff(iface='eth1'):
if IP in pkt and pkt[IP].src.endswith('5'):
pkt[IP].dst = '1.1.1.1'
sendp(pkt, iface='eth2')