2012-10-03 3 views
1

여러 파일에서 하나씩 패킷을 읽고 동일한 파일 이름을 사용하여 다른 폴더의 파일에 쓰려고합니다. 나는이 프로그램을 사용하고 있습니다 :이 프로그램에서패킷 읽기 및 쓰기 python-scapy

import os, os.path 
from scapy.all import* 

i=0 
filename = '' 

def callback_func(pkt): 
    wrpcap("/home/new/"+filename,pkt) 

files_in_dir = os.listdir("/home/packets/info/sub1") 
for file in files_in_dir: 
    filename = str(file) 
    sniff(prn = callback_func, offline = file) 

을, 내가 집/패킷/정보/SUB1 디렉토리 /에서 파일을 읽고있다, 냄새()를 사용하여 하나 그 파일 하나에 모든 패킷을 읽고, 모든 쓰기 해당 파일의 패킷을 wrpcap,/home/new /를 사용하여 다른 디렉토리의 동일한 파일 이름을 가진 다른 파일에 저장하십시오.

Scapy가 이전 패킷을 현재 패킷으로 덮어 쓰고 있습니다. 덮어 쓰기가 아닌 파일에 패킷을 추가하는 방법이 있습니까? 당신이 그들 모두를 읽고 그들 모두를 작성하려는 경우 감사

당신이 추가 할 ... 덮어 쓰기 할 일은 scapy를 요청했습니다 모든
+0

... 이런 식으로 뭔가를 할 필요가; 왜 그냥 파일을 복사하지 않습니까? 'cp -f/home/packets/info/sub1/$ {파일명}/home/new/$ {파일 이름}' – tMC

답변

2

, 당신은

import os, os.path 
from scapy.all import * 

i=0 
filename = '' 

ORIG_DIR = '/home/packets/info/sub1' 
files_in_dir = os.listdir(ORIG_DIR) 
for file in files_in_dir: 
    filename = str(file) 
    paks = rdpcap(ORIG_DIR+filename) # Read original packets 
    paks.extend(sniff(offline=file))  # Append new packets to original pak list 
    wrpcap('/home/new/'+filename, paks) # write new pak list to file