【问题标题】:Saving packets to a pcap file using Pcapy使用 Pcapy 将数据包保存到 pcap 文件
【发布时间】:2016-05-25 23:29:20
【问题描述】:

我找到了很多示例来捕获数据包并从 pcap 文件中读取。但是根本没有示例来捕获数据包并将它们转储到 pcap 中。

我正在使用来自here 的以下代码:

import pcapy
from impacket.ImpactDecoder import *

# list all the network devices
pcapy.findalldevs()

max_bytes = 1024
promiscuous = False
read_timeout = 100 # in milliseconds
pc = pcapy.open_live("name of network device to capture from", max_bytes, promiscuous, read_timeout)

pc.setfilter('tcp')

# callback for received packets
def recv_pkts(hdr, data):
  packet = EthDecoder().decode(data)
  print packet

packet_limit = -1 # infinite
pc.loop(packet_limit, recv_pkts) # capture packets

有什么想法可以将捕获的数据包转储到 pcap 文件中吗?

【问题讨论】:

    标签: python pcap


    【解决方案1】:

    您可以通过 dump_open 调用从 pcapy 获得一个 Dumper 对象,您可以在上面调用 dump。

    dumper = pc.dump_open(filename)
    ...
    dumper.dump(hrd, data)
    

    【讨论】:

      【解决方案2】:

      Pcapy 确实有 Dumper 对象,但您需要有一个 Reader 对象来创建它,这没有任何意义。

      import pcapy as pc
      dev = pc.lookupdev()
      reader = pc.open_live(dev, 65536, 1, 1)
      dumper = reader.dump_open('pcapy_test.pcap')
      
      for _ii in range(2):
          hdr, pkt = reader.next()
          dumper.dump(hdr, pkt)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-07-08
        • 1970-01-01
        • 1970-01-01
        • 2018-11-06
        • 1970-01-01
        • 2011-11-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多