def test_base_station(): db = ipdb.BaseStation("c:/work/ipdb/base_station.ipdb") print(db.is_ipv4(), db.is_ipv6()) print(db.languages()) print(db.fields()) print(db.build_time()) print(db.find_map("117.136.83.55", "CN"))
def test_base_station(): db = ipdb.BaseStation("./mydata4vipweek2.ipdb") print(db.is_ipv4(), db.is_ipv6()) print(db.languages()) print(db.fields()) print(db.build_time()) print(db.find_map("117.136.83.55", "CN"))
def ip_transform(ip): import ipdb global ip_db if not ip_db: # 服务依赖:https://www.ipip.net/product/client.html IPv4 免费地址库 file_path = os.path.join(os.path.dirname(__file__), "ipipfree.ipdb") ip_db = ipdb.BaseStation(file_path) location = ip_db.find_map(ip, "CN") return "{country_name}|{region_name}|{city_name}".format(**location)
def test_station(self): print("\n\ntest base_station start\n\n") base_station = ipdb.BaseStation("c:/work/ipdb/base_station.ipdb") print("ipdb.build.time:", base_station.build_time()) for A in range(224): ip_address = u"%d.28.1.1" % A try: print(ip_address, base_station.find(ip_address, "CN")) print(ip_address, base_station.find_map(ip_address, "CN")) print(ip_address, base_station.find_info(ip_address, "CN")) except ipdb.IPNotFound as e: print(ip_address, e) print("\n\ntest base_station end\n\n")
# ipinfo.py import re import ipdb import ipaddress db = ipdb.BaseStation("/app/qqwry.ipdb") with open("/app/iplist.txt", "r") as f: data = f.read() iplist = re.findall(r"\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}\b", data) for ip in iplist: try: ipaddress.ip_address(ip).is_global print(ip, db.find(ip, "CN")) except: pass """ # 使用前先安装 ipip-ipdb 库 和 QQ纯真IP表数据 wget https://cdn.jsdelivr.net/npm/qqwry.ipdb/qqwry.ipdb apt install python3-pip -y pip3 install --upgrade pip requests pip3 install ipip-ipdb """
import ipdb, ipaddress from flask import Flask, request, jsonify from socket import gethostbyname db = ipdb.BaseStation("qqwry.ipdb") app = Flask(__name__) def iplocated(ip): city = db.find(ip, "CN") return ip + " @" + city[0] + city[1] + city[2] + city[3] + "\n" @app.route("/ip/") @app.route("/ip/<ipaddr>") def show_ip(ipaddr=None): # ip 地址为空获得浏览器客户端IP if ipaddr is None: ip = request.remote_addr try: _ip = request.headers["X-Real-IP"] if _ip is not None: ip = _ip except Exception as e: print(e) else: ip = ipaddr # ip地址 从纯真IP数据库 搜索城市定位 try: ipaddress.ip_address(ip).is_global
import re import ipdb db = ipdb.BaseStation("ipipfree.ipdb") with open("iplist.txt", "r") as f: data = f.read() iplist = re.findall(r"\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}\b", data) for ip in iplist: print(ip, db.find(ip, "CN")) """ # 使用前先安装 ipip-ipdb 库 apt install python3-pip -y pip3 install --upgrade pip requests pip3 install ipip-ipdb """ ######################################################################################## IPDB 格式官方解析代码 https://www.ipip.net/support/code.html https://github.com/ipipdotnet/ipdb-python qqwry.ipdb 纯真数据库 IPIP.net 格式版,精简并匹配为国家、省、市、运营商。 https://github.com/metowolf/qqwry.ipdb IP 地址库 数据基于纯真数据库分类,更新日期 20201105.