ログファイルからIPを抜き出したい!

古都の老兵
2022-10-24
2022-10-24

はじめに

インフラエンジニアなら誰しもが色々なログファイルからIPを抜き出したいと思った事がありますよね?
特に攻撃元の調査や何処のサーバからの接続が多いのかとかですね。apacheやnginxのようなIPの記述場所が決まっている場合は簡単に抜き出せるのですが、そうではないログも存在しているわけです。

やり方

とはいえ単純にawkのmatchを使うだけなんですけどね

cat (ログファイル) | awk 'match($0,/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/) { print substr($0, RSTART, RLENGTH) }'
これでログファイルの中に出てくるIPだけを抽出することが出来ます。
RSTARTはマッチした最初の位置、RLENGTHはマッチした長さが入ります。

最後に

sedやawk使いの人にとっても簡単な事だと思いますが、意外と出来ないと悩んでいる人も多いのかもしれません。
以上小ネタでした。