파일 버퍼에 pcap을 쓰는 데 문제가 있습니다.이 pcap 캡처를 위해 디스크를 만지지 않아야합니다. 그렇습니다. 열려 (없음)을 할 수 없을 때 일반적으로Scapy로 버퍼에 pcap 작성하기
sudo scapy
>>> import io
>>> cap = sniff(timeout=30)
>>> buf = io.BytesIO()
>>> wrpcap(buf, cap)
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/usr/lib/python2.7/dist-packages/scapy/utils.py", line 524, in wrpcap
with PcapWriter(filename, *args, **kargs) as fdesc:
File "/usr/lib/python2.7/dist-packages/scapy/utils.py", line 682, in __init__
self.f = [open,gzip.open][gz](filename,append and "ab" or "wb", gz and 9 or bufsz)
TypeError: coercing to Unicode: need string or buffer, _io.BytesIO found
이 발생,이 Scapy의 Utils에서 PcapWriter 기능의 버그?
나는 이것을 쓰기 전에 buf.seek(0)
으로 시도했지만 여전히 실패합니다.
내가 코드를 체크 - 'wrpcap'는 파일 이름을 요구합니다. 버퍼는 사용할 수 없습니다. – furas
궁금하다면 어쨌든 나는 버퍼에 pcap 데이터를 얻을 수있다. – lillypad
'utils.py'에서'self.f = [open, gzip.open] ...'을'self.f = your_buffer'로 바꿀 수 있다면, 아마도 여러분은 메모리에'pcap'을 얻을 수있을 것입니다. 'wrpcap' 코드를 받아서 자신의'self.f'로 자신의 버전을 작성할 수 있습니다. – furas