ログファイルからIPアドレスだけを抽出するPerlスクリプト
ログファイルからIPアドレスだけを抽出するPerlスクリプトです。
どうやら100%IPアドレスだけを抽出するわけではないみたいですが、僕の環境では今の所、これで大丈夫です。
http://stackoverflow.com/questions/3221754/how-to-extract-ip-addresses-from-a-text-file-using-perl
のコードを使用しています。
log.htmと言うログファイルからIPアドレスを抽出してくれます。
$dbfile = "log.htm"; $file = "ip.txt"; #Open log open (I, "$dbfile") or die "Unable to open: $dbfile"; my @lines = <I>; close I; #Open to output to ip.txt open (K, ">$file") or die "Unable to open: rev_$keywords"; foreach (@lines){ chomp; $u = $_; #Outputs IP addresses from log. #Below code from http://stackoverflow.com/questions/3221754/how-to-extract-ip-addresses-from-a-text-file-using-perl print K "$1\n" if /\D(\d+\.\d+\.\d+\.\d+)\D/; } close K;
log.htmの中身サンプル
<br>127.0.0.1 searched Perl using @ Tue Oct 23 16:27:19 2012 with Mozilla/5.0 (X11; Linux x86_64; rv:10.0.6) Gecko/20120717 Firefox/10.0.6 <br>192.168.1.8 searched data scientist using @ Tue Oct 23 16:51:56 2012 with Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4