python - Python Scapy TCP SYN 和 TCP 端口
问题描述
使用 scapy 获取 tcp syn 标志并将源 ip、目标 ip、端口号存储在字典中时,任何人都有解决方案吗?我正在尝试构建一个工具来获取 pcap 文件并获取它
这是我厌倦的:
from scapy.all import PcapReader, TCP
from collections import Counter
count = Counter()
for pkt in PcapReader("testcapture.pcapng"):
if TCP in pkt and pkt[TCP].flags & 2: # TCP SYN packet
src = pkt.sprintf('{IP:%IP.src%}')
pkt.sprint
count[src] += 1
print(src)
这会找到所有带有 syn 标志的 ip,但我想查看端口号
解决方案
要访问TCP
层中的端口值,您可以使用sport
和dport
。所以你可以像这样调整你的代码:
count = {}
for pkt in PcapReader("testcapture.pcapng"):
if TCP in pkt and pkt[TCP].flags & 2: # TCP SYN packet
src = pkt.sprintf('{IP:%IP.src%}:{TCP:%TCP.sport%} -> {IP:%IP.dst%}:{TCP:%TCP.dport%}')
pkt.sprint
count[src] = count.get(src, 0) + 1
print(src)
推荐阅读
- flutter - 运行 Flutter 项目后出错(任务 ':app:compileFlutterBuildDebug' 执行失败)
- java - 使用 Maven 版本控制的 Docker 层
- javascript - 在 Javascript 中等待函数时捕获错误的正确方法
- python - 如何从 html span 值中提取样式值?
- python - 我如何下载 python 以及如何以最好的方式设置它?
- python - 在 Juypiter 中安装后 Plotly Express 不导入
- javascript - 将 jquery 包添加到 Angular 10+ 项目的正确方法?
- flutter - Flutter - SingleChildScrollView, Column 和 Expanded
- java - Java中lambda类的类名是什么意思?
- sql - SQL - 关于 PIVOT 行为的解释