2014-05-09 1 views
1

패킷을 캡처하고 pcap 파일에서 읽는 예제가 많이 있습니다. 그러나 패킷을 캡쳐하여 pcap에 덤프하는 예는 전혀 없습니다.Pcapy를 사용하여 pcap 파일에 패킷 저장

나는 here에서 다음 코드를 사용하고 있습니다 :

import pcapy 
from impacket.ImpactDecoder import * 

# list all the network devices 
pcapy.findalldevs() 

max_bytes = 1024 
promiscuous = False 
read_timeout = 100 # in milliseconds 
pc = pcapy.open_live("name of network device to capture from", max_bytes, promiscuous, read_timeout) 

pc.setfilter('tcp') 

# callback for received packets 
def recv_pkts(hdr, data): 
    packet = EthDecoder().decode(data) 
    print packet 

packet_limit = -1 # infinite 
pc.loop(packet_limit, recv_pkts) # capture packets 

모든 ideia을 PCAP 파일로 캡처 된 패킷을 덤프?

답변

3

dumppop 호출을 통해 pcapy에서 가져올 수있는 Dumper 객체가 있으며이 객체에 dump를 호출 할 수 있습니다.

dumper = pc.dump_open(filename) 
... 
dumper.dump(hrd, data) 
1

Pcapy에는 Dumper 개체가 있지만이 개체를 만들려면 Reader 개체가 있어야합니다. 이는 의미가 없습니다.

import pcapy as pc 
dev = pc.lookupdev() 
reader = pc.open_live(dev, 65536, 1, 1) 
dumper = reader.dump_open('pcapy_test.pcap') 

for _ii in range(2): 
    hdr, pkt = reader.next() 
    dumper.dump(hdr, pkt)