from scapy.all import * # 定义过滤器,只抓取TCP端口为80(HTTP端口)的包 filter_str = "tcp port 80" # 开始抓包 sniff(filter=filter_str, prn=lambda x: x.summary()) 获取的数据打印出来
时间: 2024-03-16 09:42:10 浏览: 78
带端口过滤的网络数据包获取
4星 · 用户满意度95%
使用Scapy抓取到的数据包可以通过回调函数进行处理,也可以存储到文件中进行后续分析。下面是一个简单的示例,将抓取到的数据包的源IP地址、目的IP地址和协议类型存储到文件中。
```python
from scapy.all import *
# 定义过滤器,只抓取TCP端口为80(HTTP端口)的包
filter_str = "tcp port 80"
# 定义回调函数,将抓取到的数据包的源IP地址、目的IP地址和协议类型存储到文件中
def packet_callback(packet):
src_ip = packet[IP].src
dst_ip = packet[IP].dst
proto = packet[IP].proto
with open('packet_info.txt', 'a') as f:
f.write(f'src_ip: {src_ip}, dst_ip: {dst_ip}, proto: {proto}\n')
# 开始抓包
sniff(filter=filter_str, prn=packet_callback)
```
在这个程序中,我们定义了一个回调函数packet_callback,它接收一个数据包作为参数,提取数据包的源IP地址、目的IP地址和协议类型,并将这些信息存储到文件中。程序运行时,所有抓取到的数据包都会被传递给这个回调函数进行处理。
阅读全文