使用 subprocess.call 读取 pcap 文件时出现文件名太长错误
File Name Too long error while reading a pcap file using subprocess.call
我不熟悉使用子流程调用。请帮助我找出以下脚本中的问题..
我正在尝试编写一个新的 PCAP 文件 (filter1.pcap),该文件将仅包含来自特定 IP 地址 (ipadd) 的数据包,而来自较大 PCAP 文件中包含的来自不同 IP 地址的大量数据包(superset.pcap)
错误是:OSError: [Errno 36] 文件名太长
代码如下:
from subprocess import *
pcapfile = rdpcap("superset.pcap")
ipadd = "192.168.1.1"
fileout = "filter1.pcap"
command = "sudo tcpdump -w %s -r %s src %s" %(fileout,pcapfile,ipadd)
subprocess.call( [command] )
顺便说一句,Linux 中的以下命令工作得很好:
sudo tcpdump -w filter1.pcap -r superset.pcap src 192.168.1.1
任何帮助都会很棒!!
谢谢,
CKS
已解决。此处存在逻辑错误。我正在使用 rdpcap 读取完整的 PCAP 文件并将值传递给 tcpdump。所以 tcpdump 正在读取完整的文件本身作为文件名。
我更改了如下代码,现在可以使用了!
import os.path
pcapfile = "superset.pcap"
ipadd = "192.168.1.1"
fileout = "filter1.pcap"
command = "sudo tcpdump -w %s -r %s src %s" %(fileout,pcapfile,ipadd)
os.system(command)
我不熟悉使用子流程调用。请帮助我找出以下脚本中的问题..
我正在尝试编写一个新的 PCAP 文件 (filter1.pcap),该文件将仅包含来自特定 IP 地址 (ipadd) 的数据包,而来自较大 PCAP 文件中包含的来自不同 IP 地址的大量数据包(superset.pcap)
错误是:OSError: [Errno 36] 文件名太长
代码如下:
from subprocess import *
pcapfile = rdpcap("superset.pcap")
ipadd = "192.168.1.1"
fileout = "filter1.pcap"
command = "sudo tcpdump -w %s -r %s src %s" %(fileout,pcapfile,ipadd)
subprocess.call( [command] )
顺便说一句,Linux 中的以下命令工作得很好:
sudo tcpdump -w filter1.pcap -r superset.pcap src 192.168.1.1
任何帮助都会很棒!!
谢谢, CKS
已解决。此处存在逻辑错误。我正在使用 rdpcap 读取完整的 PCAP 文件并将值传递给 tcpdump。所以 tcpdump 正在读取完整的文件本身作为文件名。
我更改了如下代码,现在可以使用了!
import os.path
pcapfile = "superset.pcap"
ipadd = "192.168.1.1"
fileout = "filter1.pcap"
command = "sudo tcpdump -w %s -r %s src %s" %(fileout,pcapfile,ipadd)
os.system(command)