25

何百万ものパケットを調べる必要があり、パケットが特定のポート番号に送信された回数を確認したいとしましょう。

パケットの一部を次に示します。

10:27:46.227407 IP 85.130.236.26.54156 > 139.91.133.120.60679: tcp 0
10:27:46.337038 IP 211.142.173.14.80 > 139.91.138.125.56163: tcp 0
10:27:46.511241 IP 211.49.224.217.3389 > 139.91.131.47.6973: tcp 0

ここで2番目のポート番号を調べたいので:

60679、53163、6973など

だから私は使用することができます:

grep -c '\.80:' output.txt

ポート80が使用されたすべての時間をカウントするには。しかし、使用されたすべてのポートと、このファイルで見つかった回数を表示する方法はありますか? このようなものと好ましいソートも行われたので、どのポートが最も頻繁に使用されたかを確認できます。

.80: - 54513
.110: - 12334
.445: - 412
4

1 に答える 1

50

を参照してくださいuniq -c。必要なビットを引き出し、結果をソートし、uniq を介してパイプし、出力をソートする必要があります。このようなものかもしれません:

egrep '\.[0-9]+:' output.txt | sort | uniq -c | sort -nr

明確化: ここでは grep を使用しました。これは、output.txt の形式がどのように見えるかが明確でないためcutですawk

編集: ポートを取得するには、ピリオドで 1 回カットしてから、コロンでもう一度カットします。

cut -d. -f10 < output.txt | cut -d: -f1

(または、同じことを達成するための他の多くの方法のいずれかです。) これにより、ソートされていないポートのリストが得られます。それで:

cut -d. -f10 < output.txt | cut -d: -f1 | sort | uniq -c | sort -nr
于 2012-04-24T15:33:10.653 に答える