perl批量查询ip归属地的方法代码

时间:2021-05-22

由于业务需要,要查询客户的ip地址,将部分地区的客户过滤出来,开始想到使用ip数据库,发现读取纯真数据库的难度对我来说有些大,而我目前的时间要求比较紧迫,通过在群里询问,感谢黑影子和扶凯的帮忙,推荐了IP::QQWry::Decoded这个模块,该模块是专门用来读取qqwry纯真数据库的,用起来非常简单。

复制代码 代码如下:
#!/usr/bin/perl
use IP::QQWry::Decoded;
use Encode;
use utf8;
binmode(STDIN, ':encoding(utf8)'); #这三行
binmode(STDOUT, ':encoding(utf8)'); #抄别人的
binmode(STDERR, ':encoding(utf8)'); #用来输出中文,和拿中文查找
my $qqwry=IP::QQWry::Decoded->new('qqwry.dat','gbk');
open UNUSE,'iplist.txt';
while (<UNUSE>){
($id,$ip,$key)=/(\d+)\s+(.*?)\s+(.*)/;
my $info=$qqwry->query("$ip"); #其实关键代码就这一行,哈哈
printf "%s\t%s\t%s\n",$id,$ip,$key if $info=~/地区名/;
}

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章