您的位置:首页 > 其它

如何通过命令行查找一个IP的地理位置信息

2014-04-02 09:34 295 查看
转载地址:http://www.geekfan.net/7863/

如果你想查找一个IP地址在地球上的实际地理位置,现在已经有好多在线的GeoIp查找服务你可以利用(例如geoiptool.com)。这些在线服务大多数都是由免费的像MaxMind这样的GeoIP数据库提供支持。在使用这些基于网页的服务同时,这里也有一些不同的方法来查询GeoIP数据库,尤其是Linux命令行。

在这篇教程里,我想展示一下如何通过Linux命令行获取IP地址的实际地理位置。


方法一

第一种方法是使用geoiplookup工具,它是一个用于查询MaxMind的GeoIP数据库的命令行客户端。geoiplookup允许你查询一个IP地址(或域名)的地理信息或者网络信息。你可以通过以下命令安装它(它自带了免费的GeoIP数据库)。

在Debian,Ubuntu或Linux Mint上安装geoiplookup:

1sudo apt-get install geoip-bin
在Fedora上安装:

1

sudo
yum
install
geoip

要在CentOS上安装,需要先打开EPEL源,然后使用yum命令:

1sudo yum install geoip
默认情况下安装的geoiplookup以及GeoIP.dat数据库文件位于/usr/share/GeoIP。这个数据库只能查询到国家信息。

1

geoiplookup
23.66.166.151

1GeoIP Country Edition: US, United States
你可以从MaxMind上下载额外的GeoIP数据库,它将会告诉你更详细的信息而不仅仅是国家。你也可以从这个网站上下载到许多最新的GeoIP.dat数据库。我推荐你这么做因为从Linux源上安装的GeoIP.dat可能已经过时了。MaxMind上的GeoIP数据库每月更新一次。要从MaxMind上安装GeoIP数据库,按照下面的方法。你可能想添加一个cronjob(crontab任务,crontab是Unix和类Unix系统中用于周期性执行任务的指令,译注)来使这个过程自动化。

1

2

3

4

5

6

7

wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
wget http://download.maxmind.com/download/geoip/database/asnum/GeoIPASNum.dat.gz
gunzip
GeoIP.dat.gz

gunzip
GeoIPASNum.dat.gz

gunzip
GeoLiteCity.dat.gz

sudo
cp
GeoIP.dat
GeoIPASNum.dat
GeoLiteCity.dat
/usr/share/GeoIP/

现在如果你重新执行geoiplookup,你将会看到额外的自治系统编号(AS Number)信息。这将会让你大致了解这个IP地址是属于哪个管理域(administrative domain)。

1geoiplookup 128.112.119.209
1

2

GeoIP Country Edition: US, United States

GeoIP ASNum Edition: AS88 Princeton University

如果在运行命令时不带任何参数,geoiplookup工具将只自动的使用GeoIP.dat和GeoIPASNum.dat,而不会用GeoLiteCity.dat。后面将教你查看城市一级的信息。

要获取城市一级的地理位置信息,需要显式的告诉geoiplookup使用GeoLiteCity.dat数据库。

1geoiplookup -f /usr/share/GeoIP/GeoLiteCity.dat 23.66.166.151
1

GeoIP City Edition, Rev 1: US, MA, Cambridge, 02142, 42.362598, -71.084297, 506, 617

输出包括州,城市,邮政编码,纬度和经度。所指示不同国家和网络地址的准确性因地而异。例如,宽带IP地址的地理位置信息要比移动网络准确。


方法二

如果你想免去安装和升级GeoIP数据库的烦恼,你可以试试ipinfo.io在线服务。和其他的服务不同,ipinfo.io提供了基于JSON的地理信息API,所以你可以很容易的在命令行使用像curl之类的工具获取地理信息。

1

curl
ipinfo.io/23.66.166.151

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: