2012-06-03 23 views
5

ile atla Bir SSDP hizmetini hata ayıklamak için tcpdump kullanıyorum. UDP paketlerini yazdırırkenIP başlıklarını tcpdump

$ sudo tcpdump -Aq udp port 1900 

, ben IP ve UDP başlıkları olmak için tahmin HTTP başlıkları önce anlamsız bir sürü alıyorum. Bunları bastırma işlemini nasıl bastırırım ve sadece uygulama düzeyindeki verileri pakete yazdırabilirim (HTTP başlıklarını içerir)? İşte

bir örnek, ben istemiyorum şeyler ikinci satırda NOTIFY öncesinde geçerli:

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 

cevap

2

Ne yazık istediğini yapmak için hiçbir tcpdump hatta tshark kısayolları vardır ... iyi biz ...

Bazı perl veya sed adam

muhtemelen arkamda gelecektir ... bir metin filtreden STDOUT çalıştırılır yapmak ve bu kısaltmak, ama işi alır yapabilirsiniz

[[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 Eğer bir satır sonu eklerseniz

, yukarıda listelenen perl STDIN filtre ve ...

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

adam :(gelmedi – NathanChristie

İlgili konular