最近因需要,需要对ip归属地址进行分析,经过晚上查询发现淘宝的地址库是最全的,而且发现他们提供一个json接口。
git下载地址
http://git.oschina.net/ijz/ipwhere
故写了一个借口调用接口进行查询。代码保存为ipwhere.pl,然后执行:
./ipwhere.pl 8.8.8.8 8.8.8.6
需要安装 LWP::Simple 和JSON 库。(cpan安装。)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
#!/bin/env perl # ./ipwhere.pl 8.8.8.8 8.8.8.6 use Data::Dumper; use LWP::Simple; use JSON; binmode(STDOUT, ':encoding(utf8)'); print map{getTbeIParea()} validIP(@ARGV); sub validIP(){ my $re=qr(|[0-9]|[0-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]); my @ip=grep{/^($re.){3}$re$/} @_; return @ip; } sub getTbeIParea() { my $url=qq(http://ip.taobao.com/service/getIpInfo.php?ip=$_); my $code = get($url); my $json = new JSON; my $obj = $json->decode($code); my $ipArea="$obj->{data}->{ip}:$obj->{data}->{country},$obj->{data}->{region},$obj->{data}->{city},$obj->{data}->{isp}n"; return $ipArea; } |