当前位置: 首页>>技术教程>>正文


如何使用Perl和Geo :: IPfree将IP转换为国家/地区位置

, ,
此配置将为您提供一个简单的perl脚本,该脚本可用于从IP地址查找国家/地区名称。首先我们需要安装libgeo-ipfree-perlPerl库:


UBUNTU/DEBIAN
# apt-get install libgeo-ipfree-perl

接下来,创建一个脚本,例如。ip2location.pl使用以下代码:


#!/usr/bin/env perl

use Geo::IPfree;

        my $geo = Geo::IPfree->new;
        my( $code, $country ) = $geo->LookUp( $ARGV[0] );

        print "Country: $country\n" . "Country Code: $code\n"

使脚本可执行:


$ chmod +x ip2location.pl

我们的ip2location.pl脚本接受一个命令行参数,这是我们要转换/查找为国家名称的IP地址。例如,我们使用参数执行脚本213.213.65.125


./ip2location.pl 213.213.65.125
Country: Italy
Country Code: IT

上面的脚本可以用作将IP地址转换为国家/地区位置的简单命令行工具,也可以用于例如分析Apacheaccess.log并将所有IP地址转换为一个国家/地区的位置:


$ for i in $( awk '{ print $1} ' access.log | sort | uniq ); do perl ip2location.pl $i; done

此外,perl的Geo::IPfree库也可以用于查找主机名:


$ ./ip2location.pl gnu.org
Country: United States
Contry Code: US

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/11148.html,未经允许,请勿转载。