Python獲取IP地址對應的地理位置資訊!

weixin_34320159發表於2019-01-21
11897912-f944b7c207090f5f
Python獲取IP地址對應的地理位置資訊!

導語

最近比較喜歡做一些小工具分享給大家T_T今天我們就做一個利用Python來獲取IP地址對應的地理位置資訊的小工具吧。讓我們愉快地開始吧~進群:700341555獲取Python學習資料哦!

11897912-2ccc17e8ba6c99f3
Python獲取IP地址對應的地理位置資訊!

開發工具

Python版本:3.6.4相關模組:IPy模組;argparse模組;requests模組;以及一些Python自帶的模組。

環境搭建

安裝Python並新增到環境變數,pip安裝需要的相關模組即可。

先睹為快

py檔案執行方式(cmd視窗):python ipLocQuery.py -ip ipaddrpython ipLocQuery.py -f ipaddrfileexe檔案執行方式(cmd視窗):ipLocQuery.exe -ip ipaddripLocQuery.exe -f ipaddrfile效果如下:

11897912-dc821835472e24ab
Python獲取IP地址對應的地理位置資訊!
11897912-247b2ff19a27a34d
Python獲取IP地址對應的地理位置資訊!
11897912-1ca97cbaaa065abb
Python獲取IP地址對應的地理位置資訊!
11897912-52775852ade40563
Python獲取IP地址對應的地理位置資訊!

原理簡介

利用了三個可以查詢ip地址對應歸屬地的網站做的這個小工具,分別是:

① ip.taobao.com

速度快,查國內的ip地址對應歸屬地比較精確。

② ip-api.com

速度很慢,準確性一般,國內外ip地址對應歸屬地均可查詢,同時提供了經緯度資訊。

③ api.ipstack.com(推薦)

速度快,準確性高,國內外ip地址對應歸屬地均可查詢,同時提供了經緯度資訊。

程式碼實現起來比較簡單,主要流程為:

(1)IP地址有效性驗證

圖方便,就直接呼叫IPy模組來驗證的,有bug。具體程式碼如下:

11897912-40877a669ce0e26b
Python獲取IP地址對應的地理位置資訊!

(2)請求API介面獲取ip地址對應歸屬地

根據ip地址分別請求每個網站提供的API介面來獲取ip地址對應歸屬地。由於返回結果是英文或者拼音,因此需要呼叫有道翻譯的API介面對返回結果進行翻譯,最後再把翻譯結果列印出來。

具體程式碼實現如下(以ipstack為例):

11897912-6086a58b22e3fc8c
Python獲取IP地址對應的地理位置資訊!

相關文章