2024-04-26 00:26:54 发布
网友
有没有一种方法可以从pythonscapy中的stdin读取.pcap(使用rdpcap)?每次我尝试任何事情都会出错(无法读取文件)。在
用法如下:
python main.py < test_linux.pcap
我已经实现了使用参数读取文件,但我还需要从STDIN读取。在
非常感谢。在
@tintin的答案是完全正确的,但是现在scapy可以使用一个文件描述符作为rdpcap()和PcapReader()的参数。在
rdpcap()
PcapReader()
所以rdpcap(sys.stdin)应该可以像预期的那样工作(如果您使用了Scapy的最新版本)!在
rdpcap(sys.stdin)
rdpcap()接口在内部对该文件名执行open(filename)操作时,只接受一个文件名。以下是通过tempfile的解决方法:
open(filename)
from scapy.all import * import tempfile import sys if __name__=="__main__": ftmp = tempfile.NamedTemporaryFile(delete=True) ftmp.write(sys.stdin.read()) ftmp.flush() print rdpcap(ftmp.name) ftmp.close()
如果不想处理tempfile,则必须重新实现RawPcapReader和{},以获取FD而不是文件名。在
RawPcapReader
@tintin的答案是完全正确的,但是现在scapy可以使用一个文件描述符作为
rdpcap()
和PcapReader()
的参数。在所以
rdpcap(sys.stdin)
应该可以像预期的那样工作(如果您使用了Scapy的最新版本)!在rdpcap()
接口在内部对该文件名执行open(filename)
操作时,只接受一个文件名。以下是通过tempfile的解决方法:如果不想处理tempfile,则必须重新实现},以获取FD而不是文件名。在
^{pr2}$RawPcapReader
和{相关问题 更多 >
编程相关推荐