開發(fā)工具
Python版本:3.6.4相關(guān)模塊:IPy模塊;argparse模塊;requests模塊;以及一些Python自帶的模塊。
環(huán)境搭建
安裝Python并添加到環(huán)境變量,pip安裝需要的相關(guān)模塊即可。
先睹為快
py文件運行方式(cmd窗口):python ipLocQuery.py -ip ipaddrpython ipLocQuery.py -f ipaddrfileexe文件運行方式(cmd窗口):ipLocQuery.exe -ip ipaddripLocQuery.exe -f ipaddrfile效果如下:
在學(xué)習(xí)中有迷茫不知如何學(xué)習(xí)的朋友小編推薦一個學(xué)Python的學(xué)習(xí)q u n 227? -435-? 450可以來了解一起進(jìn)步一起學(xué)習(xí)!免費分享視頻資料
原理簡介
利用了三個可以查詢ip地址對應(yīng)歸屬地的網(wǎng)站做的這個小工具,分別是:
① ip.taobao.com
速度快,查國內(nèi)的ip地址對應(yīng)歸屬地比較精確。
② ip-api.com
速度很慢,準(zhǔn)確性一般,國內(nèi)外ip地址對應(yīng)歸屬地均可查詢,同時提供了經(jīng)緯度信息。
③ api.ipstack.com(推薦)
速度快,準(zhǔn)確性高,國內(nèi)外ip地址對應(yīng)歸屬地均可查詢,同時提供了經(jīng)緯度信息。
代碼實現(xiàn)起來比較簡單,主要流程為:
(1)IP地址有效性驗證
圖方便,就直接調(diào)用IPy模塊來驗證的,有bug。具體代碼如下:
(2)請求API接口獲取ip地址對應(yīng)歸屬地
根據(jù)ip地址分別請求每個網(wǎng)站提供的API接口來獲取ip地址對應(yīng)歸屬地。由于返回結(jié)果是英文或者拼音,因此需要調(diào)用有道翻譯的API接口對返回結(jié)果進(jìn)行翻譯,最后再把翻譯結(jié)果打印出來。
具體代碼實現(xiàn)如下(以ipstack為例):