Введен флаг сжатия в конфигурации: compress может принемать True/False.
This commit is contained in:
14
download.py
14
download.py
@@ -87,7 +87,7 @@ def get_dict_groups(input:dict):
|
||||
return { bit_to_names[mask]: [ groups_communities[mask], set(groups[mask]) ] for mask in groups if "__" in bit_to_names[mask] }
|
||||
|
||||
# метод получения списка ip адресов
|
||||
def list_ip(c_dict: dict = []):
|
||||
def list_ip(c_dict: dict = [], compress: bool = True):
|
||||
"""
|
||||
Метод получения списка ip адресов
|
||||
возвращает кортеж из 2-х списков: ipv4 и ipv6
|
||||
@@ -127,8 +127,11 @@ def list_ip(c_dict: dict = []):
|
||||
# пополняем словарь ipv6_list
|
||||
ipv6_list.update(ipv6_find(str(c_list['static6']),ipv6))
|
||||
|
||||
# если ключ не сжимать
|
||||
if ipv4_list and not compress:
|
||||
ipv4_list:str="\n".join([f"route {k} blackhole;" for k, v in ipv4_list.items() if isinstance(v, list)])
|
||||
# сжимаем подсети ipv4
|
||||
if ipv4_list:
|
||||
elif ipv4_list and compress:
|
||||
# строим дерево
|
||||
Root = net_tree.Node(net_tree.Net(0,0), 0)
|
||||
# пробегаем в цикле
|
||||
@@ -145,8 +148,11 @@ def list_ip(c_dict: dict = []):
|
||||
else:
|
||||
ipv4_list:bool=False
|
||||
|
||||
# если ключ не сжимать
|
||||
if ipv6_list and not compress:
|
||||
ipv6_list:str="\n".join([f"route {k} blackhole;" for k, v in ipv6_list.items() if isinstance(v, list)])
|
||||
# сжимаем подсети ipv6
|
||||
if ipv6_list:
|
||||
if ipv6_list and compress:
|
||||
None
|
||||
else:
|
||||
ipv6_list:bool=False
|
||||
@@ -225,7 +231,7 @@ if __name__ == "__main__":
|
||||
ipv6_count_old = sum(1 for line in open(ipv6_out_file)) if os.path.isfile(ipv6_out_file) else 0
|
||||
# выполняем выгрузку
|
||||
print(f"Выгружаю список IP: {clist}")
|
||||
ipv4_list, ipv6_list=list_ip(ip_list[clist]['list'])
|
||||
ipv4_list, ipv6_list=list_ip(ip_list[clist]['list'],ip_list[clist].get('compress', True))
|
||||
# сохраняем ipv4
|
||||
if ipv4_list and len(ipv4_list.splitlines()) >= ipv4_count_old * 0.5:
|
||||
# сохраняем в файл
|
||||
|
||||
Reference in New Issue
Block a user