使用python解析ip地址


前言

想要批量將ip地址轉換為省份城市、國家或是經緯度?百度上的批量查找每次的容量太小滿足不了要求?第三方庫神器 - geoip2幫你解決所有煩惱。


准備工作
  1. 首先安裝一下geoip2庫,
    pip install geoip2
    
  2. 前往官網下載一下數據包,下載地址https://dev.maxmind.com/geoip/geoip2/geolite2/
    在這里插入圖片描述
  3. 將下載好的數據包放到程序的根目錄下

完整代碼
import geoip2.database


def getLoc(ip):
    # 傳入下載的數據的地址
    reader = geoip2.database.Reader("./GeoLite2-City_20191126/GeoLite2-City.mmdb")
    data = reader.city(ip)
    print("ip地址:", ip)
    # names['zh-CN']即可轉換為中文
    print("國家: ", data.country.names['zh-CN'])  
    print("省份: ", data.subdivisions.most_specific.names['zh-CN'])
    print("城市: ", data.city.names['zh-CN'])
    print("緯度: ", data.location.latitude)
    print("經度: ", data.location.longitude)
    

# getLoc("59.57.149.142")

測試

本次測試的ip為 -> 59.57.149.142
百度查詢的結果👇
在這里插入圖片描述
程序返回的結果👇
在這里插入圖片描述


不足之處

對於中國的小部分省份與地區無法直接獲取相對應的值(不過這個庫的數據一直在更新),但是都可以獲取其ip地址對應的經緯度,轉換的速度也還比較快(三萬多條數據用時在一分鍾以內),轉換后的省份信息精准,市的信息有些許偏差。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM