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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 中國所有省市區的ip經緯度介面
- Java根據地理位置獲取經緯度(呼叫百度地圖API)Java地圖API
- 呼叫百度api透過經緯度獲取實際地理位置資訊API
- 高德解析城市的分析,根據高德的經緯度獲取城市cityCode
- js根據ip地址獲取城市地理位置JS
- mapbox獲取各種經緯度
- .NET程式獲取當前IP經緯度,並透過經緯度實現天氣查詢功能
- Python獲取IP地址對應的地理位置資訊!Python
- python透過IP獲取國家和城市地市的方法Python
- 百度地圖JavaScript API獲取使用者當前經緯度並獲取使用者當前詳細地理位置地圖JavaScriptAPI
- js根據經緯度,獲取省市區。(百度地圖逆地址解析)JS地圖
- java百度地圖介面呼叫獲取經緯度Java地圖
- C#根據經緯度獲取實體地址C#
- 透過經緯度計算距離獲取附近商家
- 智慧手環WIFI熱點和經緯度API獲取WiFiAPI
- 如何透過裝置基站獲取裝置經緯度
- 地理位置經緯度在Mysql中用什麼欄位型別MySql型別
- 獲取資料庫中到指定經緯度距離的座標資料庫
- reactnative獲取裝置真實ip地址和ip對映的地理位置React
- java 經緯度處理、計算兩地的距離、獲取當前一定距離以內的經緯度值Java
- springboot + mongodb 通過經緯度座標匹配平面區域的方法YWKSSpring BootMongoDB
- 根據經緯度座標獲得省市區縣行政區劃城市名稱,自建資料庫 java python php c# .net 均適用資料庫JavaPythonPHPC#
- 微信小程式獲取手機定位+經緯度轉詳細地址微信小程式
- js根據ip地址獲取省份城市的方法JS
- react native 獲取地理位置React Native
- java 經緯度處理、計算兩地的距離、獲取當前一定距離以內的經緯度值 2022-02-14 0Java
- uni-app 呼叫安卓 高德sdk獲取經緯度(替代 uni.getLocation)APP安卓
- 經緯度轉換
- 百度地圖獲取多行政區域圍欄地圖
- python如何獲取本機ipPython
- uni-app:獲取當前經緯度解決方案+如何佈置全域性元件APP元件
- 美國ip地址如何獲取?
- js呼叫百度地圖介面繪製任意多邊形並獲取每個點的經緯度等JS地圖
- js獲取使用者當前所在城市(ip)JS
- python爬蟲從ip池獲取隨機IPPython爬蟲隨機
- 微信小程式 計算兩地之間的距離 + 高德地圖獲取經緯度 + elasticsearch微信小程式地圖Elasticsearch
- 經緯度距離換算
- 獲取使用者精準地理位置資訊(百度地圖)地圖