0

宛先 IP (>ip) と "User-Agent:" を取得する最も効率的な方法は何でしょうか。これらの 2 つの値を取得し、行の最初に ip があり、その後にユーザー エージェントが続くファイルにそれらをダンプしたいと思います。システム リソースを最小限に抑えたいと考えています。これは、定期的にログをフラッシュしながら 24 時間 365 日実行されます。

"    1.1.1.1.58477 > 98.139.239.224.80: Flags [P.], cksum 0x2a6c (correct), seq 1:431, ack 1, win 17520, length 430
E.../y@.~...K...b....m.Px9.Iim/.P.Dp*l..GET /images/40eb913b4b20614fad042dc816d412fe_48.jpeg HTTP/1.1^M
Accept: image/png, image/svg+xml, image/*;q=0.8, */*;q=0.5^M
Referer: http://sports.yahoo.com/news/nascar--scene-at-daytona--was-like-a-war-zone--005423629.html^M
Accept-Language: en-US^M
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)^M
Accept-Encoding: gzip, deflate^M
Host: socialprofiles.zenfs.com^M
DNT: 1^M
Connection: Keep-Alive^M"   

適切にフォーマットされた元の出力の URL を追加します。docs.google.com/file/d/0B1umMHxdWKkdNzI3anBaemhuOVE/edit?usp=sharing

T 15.127.111.221:64300 -> 198.252.206.16:80 [AP]
GET /posts/15048809/ivc/29bb?_=1362111021654 HTTP/1.1.
Host: stackoverflow.com.
Connection: keep-alive.
Accept: */*.
X-Requested-With: XMLHttpRequest.
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.22 (KHTML, like Gecko)         Chrome/25.0.1364.97 Safari/537.22.
Referer: http://stackoverflow.com/questions/15048809/tcpdump-header-info-grep-or-awk-    or-sed.
Accept-Encoding: gzip,deflate,sdch.
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6.
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3.
Cookie: __qca=P0-1081552782-122603326; sgt=id=9
4

2 に答える 2

2

問題の説明に必要な出力の正確なサンプルを含めると、質問に正確に答えるのに役立ちます。それまでは、どのように進めるかについての一般的な考え方を次に示します。

編集

$ awk '/Flags/{sub(/.80:/, "", $4);printf $4"\t"} /User-Agent/{sub(/^[^:][^:]*:/,"");sub(/\.80/,"", $4); print}'  logTest

出力

98.139.239.224   Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)^M

あなたのコメントによると、それはあなたのサンプルデータの私の表現と一致するものであるため、フィールドを $4 として一致させておきます。簡単に $3 に変更できます。

注: IP とユーザー エージェントの間のフィールド セパレータとしてタブを使用しました。

IHTH。

于 2013-02-24T20:08:40.487 に答える