2013-10-03 2 views
1

네트워크 트래픽을 몇 m 수집하고 분석을 실행하려고합니다. 내가 직면하고있는 문제는 내가 그것을 검색 할 때 내가 시간 복잡성을 줄일 수있는 방식으로 그것을 저장하고 싶다는 것이다.분석을 위해 패킷 캡처 데이터 (* .pcap)를 저장하는 방법

필자가 생각한 첫 번째 아이디어는 열에 가능한 모든 속성을 포함하는 데이터베이스에 넣는 것이었지만 테이블에 많은 NULL 값이 있다는 것을 깨달았습니다. 이렇게하면 성능이 저하됩니다. 데이터베이스 작은 데이터베이스에서 성능 저하가 작은 경우에도 큰 * .pcap 파일 (1Gb보다 큼)을 구문 분석 할 때 성능 저하가 데이터베이스 성능에 크게 영향을 미칩니다. 데이터베이스의 크기가 증가하고 테이블에 NULL 값의 수가 증가함에 따라.

분석을 위해 * .pcap 파일을 저장하는 더 좋은 방법이 있습니다. 솔루션으로 XML 트리를 조사해 왔지만 확실하지 않습니다. 나는 그것을 할 파이썬을 사용하고 그리고 난이 * .pcap 파일에서 advvance에서

감사 데이터를 추출 할 수 dpkt 모듈을 사용하고

+0

어떤 종류의 성능을 사용하여 pcap을 구문 분석합니까? 어떤 종류의 성과를 성취하고 싶습니까? – tMC

+1

파싱 된 데이터의 계획은 무엇입니까? 찾아 보시겠습니까? 뭔가 검색? 특정 패킷을 필터링합니까? – Milo

+0

@Milo : 각 패킷을 얻기 위해 데이터를 검색하려고합니다. 특정 패킷을 필터링 할 수도 있습니다. 주요 작업은 데이터를 검색하는 것입니다. – TheCreator232

답변

1
두 단계에서 할 어쩌면 수

:

첫째,를 사용 tshark pcap 파일을 .csv 파일로 변환하는 도구입니다. 예 :

tshark -r input_file.pcap -n -T fields -E separator=, -e frame.time -e ip.src -e ip.dst -e ip.proto -e tcp.port >outfile.csv 

그런 다음 파이썬에서 csv 모듈을 사용하여 읽고 분석합니다.

import csv 
with open("outfile.csv", "r") as f: 
    reader = csv.reader(f, delimiter=",") 
    for row in reader: 
     # do whatever with the data row... 

희망이 도움이됩니다.

관련 문제