使用 scapy 进行流量监控。
依赖
- 需要 Python3 环境并安装 scapy: python3 -m pip install scapy
- windows 环境需要安装 winpcap: 官方地址
示例代码
#!/usr/bin/env python # _*_ Coding: UTF-8 _*_ from scapy.all import * def capture(x): if b'HTTP/' in x.lastlayer().original and x.lastlayer().original[0:4] != b'HTTP': print('dst ip:', x.payload.dst) print('request body:', x.lastlayer().original) def main(): sniff(filter="tcp", prn=lambda x: capture(x)) if __name__ == '__main__': main() 复制代码
代码说明
sniff(filter="tcp", prn=lambda x: capture(x))
- count 捕获数量, 设置为 0 时则持续捕获
- store 数据包处理: 1 保存, 0 丢弃
- offline 从 pcap 文件中读取数据包, 而不进行嗅探, 默认为 None
- prn 回调函数
- filter 过滤规则, 使用 winreshark 语法
- L2socket 使用给定的 L2so