2012-06-03 9 views
5

Używam tcpdump do debugowania usługi SSDP.Pomiń nagłówki IP za pomocą tcpdump

$ sudo tcpdump -Aq udp port 1900 

Podczas drukowania pakiety UDP, Dostaję dużo bełkotu przed nagłówkach HTTP Przypuszczam być nagłówki IP i UDP. W jaki sposób pomijam ich drukowanie i po prostu drukuję dane poziomu aplikacji w pakiecie (który zawiera nagłówki HTTP)?

Oto przykład, rzeczy nie chcę się przed NOTIFY w drugim wierszu:

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 

Odpowiedz

2

Niestety nie istnieją tcpdump lub nawet tshark skróty robić to, co chcesz ... najlepszy możemy zrobić, to uruchomić STDOUT przez filtr tekstu ...

Niektóre perl lub sed facet pewnie przyjdzie za mną i skrócić to, ale dostaje zadanie ...

[[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] ~]$ 

Jeśli dodać line-przerw, filtr Perl STDIN wymienione powyżej jest ...

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

Facet nigdy nie przyszedł :( – NathanChristie

Powiązane problemy