2012-06-03 10 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ショートカットはありません...最高我々は、テキストフィルタを通してSTDOUTを実行されないことができます...

一部perlまたはsed男は、おそらく私の後ろに来て、これを短縮するが、それは仕事を取得します...

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

あなたは改行を追加する場合は、上記のperl STDINフィルタがある...

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

男が来たことはありません:( – NathanChristie

関連する問題