summaryrefslogtreecommitdiff
path: root/figcode/analyzedutil.py
diff options
context:
space:
mode:
Diffstat (limited to 'figcode/analyzedutil.py')
-rw-r--r--figcode/analyzedutil.py68
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