This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
handingkang-ohmybs/figcode/analyzedutil.py
2024-05-27 10:39:10 +08:00

69 lines
1.8 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# analyzeutl 是分析器工具集合
import awdb
# 过滤所有空值
def filterNull(s):
if s == "":
return "UnKnown"
return s
def IP46(IP: str):
if ':' in IP:
return "v6"
if '.' in IP:
return "v4"
return "Unknown"
path_ip4app = "./data/IP_scene_all_cn.awdb"
path_ip6 = "./data/IP_city_single_BD09_WGS84_ipv6.awdb"
path_ip6_en = "./data/IP_city_single_BD09_WGS84_ipv6_en.awdb"
path_ip4qvxian = "./data/IP_basic_single_WGS84.awdb"
path_ip4qvxian_en = "./data/IP_basic_single_WGS84_en.awdb"
# 实例化数据读取器
def makereader(arg=0):
# 默认加载所有离线数据
dloader_ip4app = awdb.open_database(path_ip4app)
dloader_ip6 = awdb.open_database(path_ip6)
dloader_ip6en = awdb.open_database(path_ip6_en)
dloader_ip4qx = awdb.open_database(path_ip4qvxian)
dloader_ip4qxen = awdb.open_database(path_ip4qvxian)
return dloader_ip4app, dloader_ip4qx, dloader_ip6,dloader_ip4qxen,dloader_ip6en
reader_ip4app, reader_ip4qx, reader_ip6,reader_ip4qxen,reader_ip6en = makereader()
# 返回IP离线库中与ip相关的记录记录中不包含应用场景
def getrecord(ip,lang="ch"):
if (IP46(ip) == "v4"):
return IP4_info(ip,lang)
elif (IP46(ip) == "v6"):
return IP6_info(ip,lang)
else:
print("地址存在问题")
print(ip)
return 1
# 返回IPv4记录
def IP4_info(ip,lang="ch"):
if lang=="ch":
(record, prefix_len) = reader_ip4qx.get_with_prefix_len(ip)
else:
(record, prefix_len) = reader_ip4qxen.get_with_prefix_len(ip)
return record
# 返回IPv6记录
def IP6_info(ip,lang="ch"):
if lang=="ch":
(record, prefix_len) = reader_ip6.get_with_prefix_len(ip)
else:
(record, prefix_len) = reader_ip6en.get_with_prefix_len(ip)
return record