diff options
Diffstat (limited to 'figcode/analyzedutil.py')
| -rw-r--r-- | figcode/analyzedutil.py | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/figcode/analyzedutil.py b/figcode/analyzedutil.py new file mode 100644 index 0000000..492bbb5 --- /dev/null +++ b/figcode/analyzedutil.py @@ -0,0 +1,68 @@ +# 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 |
