2012-06-03 2 views
5

tcpdump을 사용하여 SSDP 서비스를 디버깅하고 있습니다. UDP를 패킷을 인쇄 할 때tcpdump로 IP 헤더를 건너 뛰십시오.

$ sudo tcpdump -Aq udp port 1900 

, 나는이 IP 및 UDP 헤더로 추정 HTTP 헤더 전에 횡설수설을 많이 받고 있어요. 어떻게 이러한 출력을 억제하고 패킷 (HTTP 헤더 포함)에 응용 프로그램 수준 데이터를 인쇄합니까? 여기

은 예입니다, 내가 원하지 않는 물건은 두 번째 줄에 NOTIFY 이전입니다 :

14:41:56.738130 IP www.routerlogin.com.2239 > 239.255.255.250.1900: UDP, length 326 
[email protected] * HTTP/1.1 
HOST: 239.255.255.250:1900 

답변

2

은 슬프게도 당신이 원하는 일을 할 tcpdump 또는 tshark 바로 가기가없는 ... 최고 우리는 ...

일부 perl 또는 sed 사람

아마 내 뒤에 올 것이다 ... 텍스트 필터를 통해 STDOUT을 실행 할이 단축되지만 작업 수행 얻을 수

[[email protected] ~]$ sudo tcpdump -Aq udp port 1900 | perl -e 'while ($line=<STDIN>) { if ($line!~/239.255.255.250.+?UDP/) { if ($line=~/(NOTIFY.+)$/) {print "$1\n";} else {print $line;}}}' 
NOTIFY * HTTP/1.1 
HOST: 239.255.255.250:1900 

[[email protected] ~]$ 
012 당신이 행 구분을 추가하는 경우 3,516,

위에 나열된 펄 STDIN 필터는 ...

while ($line=<STDIN>) { 
    if ($line!~/239.255.255.250.+?UDP/) { 
     if ($line=~/(NOTIFY.+)$/) { 
      print "$1\n"; 
     } else { 
      print $line; 
     } 
    } 
} 
+0

사람은 :(온 적이 – NathanChristie

관련 문제