ログファイルから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