サーバーログ内の他のデータが混乱している中で、サイトのサーバーからIPアドレスを取得するのに問題があります。 Excelをクラックする前に、AWSからIPを削除するという、私が望むものの反対を見つけたので、それを行う方法があることを知っています。
cat web.log | awk '{$1=$2=$3=""}1' > web-no-ip.log
この種のことのためのステップバイステップまたはチートシートは素晴らしいでしょう。
IPアドレスはX.X.X.X
の一般的な形式であり、X
は[0,255]の間にあると想定しています。それを知っていると、grepは非常に見事に仕事をすることができます:
grep -oP '(0|[01]?[0-9]{1,2}|2[0-4][0-9]|25[0-5])(\.(0|[01]?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){3}' filename.txt
(0|[01]?[0-9]{1,2}|2[0-4][0-9]|25[0-5])
は、先行ゼロを含む0〜255の任意の数値に一致します。たとえば、0、255、019などです。ただし、記述されているとおり、1.1.1.1.5
(5オクテット)などに一致します。 。これは、IPV6アドレスも追跡しません。
ログにX.X.X.X
のような有効なIPアドレスのみが含まれていると予想され、X
が無効になることはないと想定できる場合は、はるかに単純な式を使用できます。
grep -oP '\d{1,3}(\.\d{1,3}){3}' filename.txt