Beispiel #1
0
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"))
Beispiel #2
0
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"))
Beispiel #3
0
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)
Beispiel #4
0
 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")
Beispiel #5
0
# 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
"""
Beispiel #6
0
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
Beispiel #7
0
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.