Python獲取IP的地理位置:經緯度,國家,區域,城市
人人可以學Python .png
我們現在手機使用的定位主要是以GPS衛星為主,A-Gps,IP輔助定位。而網站還是透過瀏覽網頁使用者的IP來得到使用者的地理位置,透過分析,調整業務。
GeoIP2
很多公司都是使用Maxmind網站的IP資訊庫,裡面包含著IP的詳細資訊,有付費的也有免費的,收費與免費的區別就是精準度和覆蓋率
GeoIP也有python的lib,有GeoIP,和GeoIP2,在這裡我們就拿GeoIP2來試一試獲取一個IP的地理位置。
GeoIP2安裝###
安裝GeoIP2還是一樣:
命令安裝:
pip install geoip2
也可以去Github網站下載安裝:
地址:
GeoIP2使用###
使用我們剛才安裝的包,我們可以使用Maxmind的線上庫也可以把庫下載下來離線使用。
先來看看離線庫的使用:
先去這裡下載一個庫
http://dev.maxmind.com/geoip/geoip2/geolite2
人人可以I學Python2.jpg
我這裡就下載個GeoLite2 City使用。
然後我們的python程式碼如下:
#!/usr/bin/python#-*-coding:utf-8-*-import geoip2.database reader = geoip2.database.Reader('./GeoLite2-City.mmdb') ip = raw_input("輸入你要查詢的IP:n") response = reader.city(ip)# 有多種語言,我們這裡主要輸出英文和中文print("你查詢的IP的地理位置是:") print("地區:{}({})".format(response.continent.names["es"], response.continent.names["zh-CN"])) print("國家:{}({}) ,簡稱:{}".format(response.country.name, response.country.names["zh-CN"], response.country.iso_code)) print("洲/省:{}({})".format(response.subdivisions.most_specific.name, response.subdivisions.most_specific.names["zh-CN"])) print("城市:{}({})".format(response.city.name, response.city.names["zh-CN"])) print("經度:{},緯度{}".format(response.location.longitude, response.location.latitude)) print("時區:{}".format(response.location.time_zone)) print("郵編:{}".format(response.postal.code))
試一試
(venv) allenwoo@~/renren/code$ python test.py 輸入你要查詢的IP:112.74.207.96你查詢的IP的地理位置是: 地區:Asia(亞洲) 國家:China(中國) ,簡稱:CN洲/省:Zhejiang(浙江省) 城市:Hangzhou(杭州) 經度:120.1614,緯度30.2936時區:Asia/Shanghai 郵編:None
再來一個:
(venv) allenwoo@~/renren/code$ python test.py 輸入你要查詢的IP:223.192.2.165你查詢的IP的地理位置是: 地區:Asia(亞洲) 國家:China(中國) ,簡稱:CN洲/省:Beijing(北京市) 城市:Beijing(北京) 經度:116.3883,緯度39.9289時區:Asia/Shanghai 郵編:None
2.至於線上庫的使用是需要一個license_key
只有前面兩步不太一樣
連線: client = geoip2.webservice.Client(42,
查詢 IP: response = client.insights(
好了,到此為止,謝謝!
作者:退出簡書黑
連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2001/viewspace-2803067/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java根據地理位置獲取經緯度(呼叫百度地圖API)Java地圖API
- 呼叫百度api透過經緯度獲取實際地理位置資訊API
- js根據ip地址獲取城市地理位置JS
- 中國所有省市區的ip經緯度介面
- 全國城市經緯度資料
- 根據IP獲取國家
- Python獲取IP地址對應的地理位置資訊!Python
- 百度地圖JavaScript API獲取使用者當前經緯度並獲取使用者當前詳細地理位置地圖JavaScriptAPI
- 根據IP獲取國家省市
- java百度地圖介面呼叫獲取經緯度Java地圖
- js根據經緯度,獲取省市區。(百度地圖逆地址解析)JS地圖
- C#根據經緯度獲取實體地址C#
- 智慧手環WIFI熱點和經緯度API獲取WiFiAPI
- 透過經緯度計算距離獲取附近商家
- 【iOS開發】獲取區域網IPiOS
- 根據ip獲取城市
- 地理位置經緯度在Mysql中用什麼欄位型別MySql型別
- PHP獲取ip與ip所在城市PHP
- 獲取資料庫中到指定經緯度距離的座標資料庫
- 常用經緯度轉換為ntu經緯度
- java 經緯度處理、計算兩地的距離、獲取當前一定距離以內的經緯度值Java
- 利用js獲取IP,所在城市JS
- uni-app 呼叫安卓 高德sdk獲取經緯度(替代 uni.getLocation)APP安卓
- 根據經緯度座標獲得省市區縣行政區劃城市名稱,自建資料庫 java python php c# .net 均適用資料庫JavaPythonPHPC#
- reactnative獲取裝置真實ip地址和ip對映的地理位置React
- 區域網內獲取周圍裝置的ip和埠
- springboot + mongodb 通過經緯度座標匹配平面區域的方法YWKSSpring BootMongoDB
- js根據ip地址獲取省份城市的方法JS
- js根據ip地址獲取所在城市JS
- 百度地圖獲取多行政區域圍欄地圖
- 米轉換經緯度
- js如何獲取當前使用者訪問的ip地址以及城市地區?JS
- uni-app:獲取當前經緯度解決方案+如何佈置全域性元件APP元件
- php根據地理座標獲取國家、省份、城市,及周邊資料類PHP
- 微信小程式 計算兩地之間的距離 + 高德地圖獲取經緯度 + elasticsearch微信小程式地圖Elasticsearch
- java 經緯度處理、計算兩地的距離、獲取當前一定距離以內的經緯度值 2022-02-14 0Java
- js呼叫百度地圖介面繪製任意多邊形並獲取每個點的經緯度等JS地圖
- react native 獲取地理位置React Native