gpt4 book ai didi

Python:通过管道将 pcap 文件传输到 stdout 会出错

转载 作者:太空宇宙 更新时间:2023-11-04 02:09:13 25 4
gpt4 key购买 nike

我正在尝试将 xz 的输出通过管道传输到自定义 python 脚本:

xz -cd file.pcap.xz | myscripy.py

但是,当脚本尝试运行此行时我收到错误消息:

  #!/usr/bin/env python2.7
from __future__ import print_function

import pcap
import io
STDIN_ALIAS = '/proc/self/fd/0'

pcap.pcap(io.open(STDIN_ALIAS, 'r'))

收到一个错误

    pcap.pcap(io.open(STDIN_ALIAS, 'r'))
File "pcap.pyx", line 196, in pcap.pcap.__init__
TypeError: expected string or Unicode object, _io.TextIOWrapper found

我在 Ubuntu 18.04 上运行 python 2.7。

最佳答案

您不能使用 Python 将数据包从文件传递到 pcap.pcap()pypcap library您使用的是 pcap_open_offline() 的薄包装和 pcap_create() C 函数,并且不提供用于传递 Python 文件对象的工具。此包装器接受文件名或网络接口(interface)名称,不接受其他任何内容。

pcap_open_offline() 函数确实接受 - 作为 stdin 的别名,因此直接将其传递:

import pcap

sniffer = pcap.pcap('-')

关于Python:通过管道将 pcap 文件传输到 stdout 会出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53986737/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com