LoginSignup
2
2

More than 5 years have passed since last update.

シェル小物:IP,ポート番号集計

Posted at

tcpdumpしてIPとポート番号を集計する

tcpdumpのPCAP形式のキャプチャデータから、あるサーバがどのクライアントIPとどんなportで通信しているかを集計するためのシェルスクリプト

ちなみに、tcpdumpでポート番号を数値で表示するときには、”-dd"オプションを使う

$ ls
shelltest.sh  test1.txt  test2.txt  test3.txt

test1.txt、test2.txt、test3.txtはtcpdumpで取得したPCAPデータをリダイレクトしたファイル。

$ cat test1.txt 
123.123.123.123.telnet 234.234.234.34555
123.123.123.123.domain 234.234.345.34655

ってな感じ。

最初のIP.PORTがサーバ側、後ろのIP.PORTがクライアント側の、こんなファイルtest1.txt,test2.txt,test3.txt があったとする。

以下のシェルを使うと、サーバに通信しているクライアントのIPアドレスとport番号一覧ができる。

shelltest.sh
#!/bin/sh

#ファイルを1つずつ読み込み

for file in `\find . -name '*.txt'`; do
    cat $file |tr "." " " | awk '{if ( $5 ~/^[a-z]+$/) print $1,$2,$3,$4,$5,$6,$7,$8,$9; else if ( $5 ~/^[0-9]+$/) print $6,$7,$8,$9,$10,$1,$2,$3,$4}' | sort | uniq >> ./testZ
done

#ファイルの結果を集計
cat testZ | sort | uniq > testZZ
exit 0

これは、そこそこ使われたな。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2