scapy:pcap处理入门

安装

pip install scapy

导包

import scapy
from scapy.all import *
from scapy.utils import PcapReader

读取pcap文件

  1. 第一种:一次性读入内存
pkts = rdpcap('./wuming.pcap')
for pkt in pkts:
	...
  1. 第二种:逐个读入。每次调用read_packet()都会读入一个新的包
packets = PcapReader("./wuming.pcap")
pkt = packets.read_packet()

显示已格式化的数据包

pkt.show()

显示如下,已分好层

###[ Ethernet ]### 
  dst       = 14:30:04:03:46:28
  src       = 00:0c:29:82:6f:68
  type      = IPv4
###[ IP ]### 
     version   = 4
     ihl       = 5
     tos       = 0x0
     len       = 40
     id        = 29078
     flags     = DF
     frag      = 0
     ttl       = 64
     proto     = tcp
     chksum    = 0x75fe
     src       = 192.168.1.34
     dst       = 124.236.20.133
     \options   \
###[ TCP ]### 
        sport     = 37432
        dport     = http
        seq       = 852751594
        ack       = 949704169
        dataofs   = 5
        reserved  = 0
        flags     = FA
        window    = 229
        chksum    = 0x12e8
        urgptr    = 0
        options   = []
###[ Padding ]### 
           load      = '\x00\x00\x00\x00\x00\x00'

访问某层的特定字段值

pkt['层名'].字段名

pkt['IP'].dst

print 输出为

124.236.20.133

修改某层的特定字段值

直接赋值

pkt['IP'].dst = '1.1.1.1'

时间戳

pkt有成员time

int(pkt.time*10**3)

可提取毫秒级别的时间戳,最多可精确到微秒

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用Scapy读取pcap文件时,有两种常见的方法。第一种方法是使用`rdpcap`函数一次性将整个pcap文件读入内存。例如,使用以下代码可以将pcap文件test.pcap读取到内存中并将其保存在一个名为`pkts`的变量中: ``` from scapy.all import * pkts = rdpcap('test.pcap') ``` 在这种方法中,`pkts`变量是一个包含了所有数据包的列表。你可以通过访问列表的索引来获取特定的包,例如`pkts[n`表示获取第n个包。 另一种方法是使用`PcapReader`类逐行读取pcap文件。每次调用`read_packet()`方法都会读取下一个新的包到内存中。例如,以下代码演示了如何使用逐行读取方法: ``` from scapy.all import * pr = PcapReader('test.pcap') pkt = pr.read_packet() ``` 这样,变量`pkt`将保存读取到的包。 总之,使用Scapy读取pcap文件的两种方法分别是一次性读入内存和逐行读取。你可以根据自己的需求选择适合的方法来读取pcap文件中的数据。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [[Python][Scapy]使用Scapy解析pcap格式数据](https://blog.csdn.net/friend_c/article/details/89214739)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [【scapy】读取pcap](https://blog.csdn.net/weixin_34121304/article/details/85976723)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值