IP_Guishudi.pl脚本内容如下所示,如果系统是Linux或Unix,可以根据Perl路径不同加上相应的"#!/usr/bin/perl" Shaban Header。Windows系统如果直接将内容贴入,文件因为编码格式问题可能无法运行,用notepad++将格式设置为ANSI是可以的。目前测试Perl 5.10.1版本上工作正常。
===========================================================================
use warnings;
use URI;
use LWP;
use Encode;
glob $line;
if ($ARGV[0] !~ /\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/ ) {
my $filename=$ARGV[0];
open(FILE,$filename) || die "$filename not exist!";
while($line=){
chomp($line);
&Guishudi;
}
close(FILE);
}
else {
my $ARGN=$#ARGV;
for ($i=0;$i<=$ARGN;$i++) {
$line=$ARGV[$i];
&Guishudi;
}
}
sub Guishudi {
my $url=URI->new('');
$url->query_form('ip' => $line);
my $browser = LWP::UserAgent->new;
my $response = $browser->get($url);
if($response -> is_success) {
$value = $response -> decoded_content; $out = encode("gb2312",$value); $out =~ m/本站主数据:\s*(.*?)<\/li>/; print "$line $1\n";}
else {
die $response -> status_line;
$str = $out;
$str =~ m/本站主数据:\s*(.*?)<\/li>/;
print "$line $1 \n";}
}
================================================================================
用法示例1:
C:\zwg>IP_Guishudi.pl 120.193.133.22 202.106.0.8 12.1.3.3 80.91.1.1
120.193.133.22 中国 移动
202.106.0.8 北京市 联通
12.1.3.3 美国
80.91.1.1 丹麦
用法示例2:
C:\zwg>more IP_Addr.txt
211.167.84.52
211.167.84.53
211.167.84.54
C:\Documents and Settings\zwg>IP_Guishudi.pl IP_Addr.txt
211.167.84.52 北京市 国研网
211.167.84.53 北京市 国研网
211.167.84.54 北京市 国研网
阅读(741) | 评论(0) | 转发(0) |