我想在过滤掉所有的NBNS流量后将数据写入pcap文件中,但是这给了我一个语法错误。
from scapy.all import *
Capture = raw_input("Enter file path of pcap file: " )
pcap = rdpcap(Capture)
ports=137
filtered = (pkt for pkt in Capture if
(UDP in pkt and
(pkt[UDP].sport in str(ports)))
wrpcap("filtered.pcap",filtered)
我发现语法错误的答案只是
...str(ports))))
末尾缺少一个括号,但现在我有一个不同的错误。 File "receiver2.py", line 18, in <module>
wrpcap("filtered.pcap",filtered)
File "/usr/lib/python2.7/dist-packages/scapy/utils.py",
line 470, in wrpcap
PcapWriter(filename, *args, **kargs).write(pkt)
File "/usr/lib/python2.7/dist-packages/scapy/utils.py", line 652, in write
for p in pkt:
File "receiver2.py", line 13, in <genexpr>
(UDP in pkt and
TypeError: 'in <string>' requires string as left operand, not Packet_metaclass
packet = Ether()/IP(src=src, dst=dst)/TCP(sport=sport, dport=dport, flags='A')/payload
的pcap文件有所帮助。(换行)wrpcap(out_fname, packet, append=True)
- Luc