2013-04-18 5 views
1

네트워크 스니퍼를 작성해야하며 파이썬을 사용하기로 결정했습니다. 나는 공연이 최고가되지 않을 것이라는 것을 알고 있으며, 이런 종류의 소프트웨어를 위해서 나는 c 나 C++을 사용해야 만한다. 그러나 좋은 프로토 타입은 나를 위해 할 것이다. 그래서 저는 파이썬 2.7 용 libpcap 라이브러리로 작업했으며 필요한 모든 정보를 얻을 수있었습니다 : 상대 포트, 타임 스탬프 및 패킷 길이를 가진 IP 소스 및 대상. 하지만 문제는 트래픽이 많을 때 거대한 패킷이 떨어지는 것을 발견했습니다.Scapy - 통계를 얻는 방법?

이 정보는 전체 프로세스 중에 mysql 데이터베이스에 삽입되었다고해야합니다.

그래서 내가 Scapy 을 추가하기 전에이 정교화 과정에서 얼마나 많은 패킷을 풀 것인지를 측정하는 방법이 있는지 알고 싶습니다..

고맙습니다.

+0

또는 대안으로 tcpdump 요약과 비슷한 방식으로 얼마나 많은 패킷이 삭제되는지 알 수 있습니다. 키보드 중단 후 Ctrl-c 키를 누르면 43 패킷이 캡처됩니다. 373 개의 패킷이 필터에 수신되었습니다. 300 패킷이 삭제되었습니다. 커널 별 ' – MixturaDementiae

답변

0

간접적 인 방법으로 수정했습니다. 나는 사용하고있다

tcpdump -G 3600 -i interface -n -w %H-Capture.pcap 

여기서 나는 버려진 패킷에 관한 모든 통계를 수집하고 필터링한다. 폐기 된 패킷의 비율을 최소화하려면 기본적으로 캡처 된 패킷의 각 호스트를 확인하지 말아야하기 때문에 기본적으로 -n 옵션이 중요합니다. -G 대신 기본적으로 매 시간당 3600 초를 순환하도록 지정합니다. 다음

이후 난 그냥 CLI에서 Scapy 가서 scapy에서 내가 할이 만 TCP 패킷을 보여줍니다

x = rdpcap("myfile") 
len_x = len(x) 

for i in x: 
    if TCP in i: 
     i.show() 

. 원하는 경우 UDP 또는 ICMP 등을 동일한 방식으로 필터링 할 수도 있습니다.

관련 문제