CentOS上通過命令列尋找一個IP的地理位置資訊

來源:互聯網
上載者:User

如果你想尋找一個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上安裝:

1sudo yum install geoip

要在CentOS上安裝,需要先開啟EPEL源,然後使用yum命令:

1sudo yum install geoip

預設情況下安裝的geoiplookup以及GeoIP.dat資料庫檔案位於/usr/share/GeoIP。這個資料庫只能查詢到國家資訊。

1geoiplookup 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系統中用於周期性執行任務的指令,譯註)來使這個過程自動化。

1234567wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gzwget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gzwget http://download.maxmind.com/download/geoip/database/asnum/GeoIPASNum.dat.gzgunzip GeoIP.dat.gzgunzip GeoIPASNum.dat.gzgunzip GeoLiteCity.dat.gzsudo cp GeoIP.dat GeoIPASNum.dat GeoLiteCity.dat /usr/share/GeoIP/

現在如果你重新執行geoiplookup,你將會看到額外的自治系統編號(AS Number)資訊。這將會讓你大致瞭解這個IP地址是屬於哪個管理域(administrative domain)。

1geoiplookup 128.112.119.209

12GeoIP Country Edition: US, United StatesGeoIP 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

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

輸出包括州,城市,郵遞區號,緯度和經度。所指示不同國家和網路地址的準確性因地而異。例如,寬頻IP地址的地理位置資訊要比移動網路準確。

方法二

如果你想免去安裝和升級GeoIP資料庫的煩惱,你可以試試ipinfo.io線上服務。和其他的服務不同,ipinfo.io提供了基於JSON的地理資訊API,所以你可以很容易的在命令列使用像curl之類的工具擷取地理資訊。

1curl ipinfo.io/23.66.166.151

需要注意的是它們的API限制每天最高1,000次請求。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.