IPアドレスから逆引きとtracerouteをするPerlスクリプト
IPアドレスから逆引きとtracerouteをするPerlスクリプトです。
SocketとNet::Traceroute::PurePerlのモジュールを使いました。
使い方は:
$ sudo perl ip-lookup-traceroute.pl >> ip-trace.txt
ip-output.txtにIP逆引きの情報が入って、上のコマンド通りにすれば、ip-trace.txtにtracerouteの結果が保存されます。
use Socket; use Net::Traceroute::PurePerl; $dbfile = "ip.txt"; print "Starting Trace!\n"; open (I, "$dbfile") or die "Unable to open: $dbfile"; my @lines = <I>; close I; $counter = 1; foreach (@lines){ print "Tracing $counter"; $counter++; chomp; $ip = $_; $ipinfo = gethostbyaddr(pack('C4',split('\.', $ip)), AF_INET); print gethostbyaddr(pack('C4',split('\.', $ip)), AF_INET); print "\n"; my $t = new Net::Traceroute::PurePerl( backend => 'PurePerl', # this optional host => $ip, debug => 0, max_ttl => 12, query_timeout => 2, packetlen => 40, protocol => 'udp', # Or icmp ); $t->traceroute; $t->pretty_print; if ($ipinfo eq ""){ $ipinfo = "No address"; } open(OUT,">> ip-output.txt"); print OUT "$ip $ipinfo\n"; close(OUT); }