文件内容格式有:
192.168.1.0/24192.168.2.1-192.168.2.254192.168.3.1~192.168.3.100192.168.4.1-254192.168.5.100【Python】IP地址解析并生成,casio tr100
0evadmin
编程语言
1
文件名:【Python】IP地址解析并生成,casio tr100
【Python】IP地址解析并生成
IP地址解析并生成 #!python3# coding=utf-8import loggingimport ipaddresslogging.basicConfig(level=logging.INFO,format='%(asctime)s [%(filename)s:%(lineno)d] %(levelname)s # %(message)s',datefmt='%Y-%m-%d %M:%S')def parse_ipaddress_user(addrs, flag):addr_fields = str.split(addrs, flag)if len(addr_fields) != 2:return None, Nonetry:start = ipaddress.ip_address(addr_fields[0])except Exception:logging.error("addr err: %s" % addrs)return None, Nonetry:end = ipaddress.ip_address(addr_fields[1])except Exception:try:end_tmp = int(addr_fields[1])except Exception:logging.error("add err: %s", addrs)return None, Nonetmp_fields = str.split(addr_fields[0], ".")if len(tmp_fields) != 4:logging.error("add err: %s", addrs)return None, Noneend_str = f"{tmp_fields[0]}.{tmp_fields[1]}.{tmp_fields[2]}.{end_tmp}"try:end = ipaddress.ip_address(end_str)except Exception:logging.error("add err: %s", addrs)return None, Nonereturn start, enddef parse_ipaddress(addrs):if "-" in addrs:start, end = parse_ipaddress_user(addrs, "-")if start is None or end is None:yield Noneelse:while start <= end:yield startstart += 1elif "~" in addrs:start, end = parse_ipaddress_user(addrs, "~")if start is None or end is None:yield Noneelse:while start <= end:yield startstart += 1elif "/" in addrs:try:base_net_addr = ipaddress.ip_network(addrs)except Exception:logging.error("add err: %s", addrs)yield Noneelse:base_addr = base_net_addr.network_address + 1index = 0while True:ipvx_addr = base_addr + indexindex += 1if ipvx_addr >= base_net_addr.broadcast_address:breakyield ipvx_addrelse:yield addrsif __name__ == "__main__":with open("ipaddr", 'r', encoding='utf-8') as fd:for check_someone in fd:check_someone = check_someone.strip()if check_someone == "":continuegen_addr_obj = parse_ipaddress(check_someone)for gen_addr in gen_addr_obj:print(gen_addr)
同类推荐
-

【PyTorch】权重衰减,佳能eos m
查看 -

【PyTorch】(一)简介,忆捷m880(忆捷v8)
查看 -

【Python 2】列表 模式匹配 循环 dict set 可变对象与不可变对象,平板电脑团购
查看 -

【Python CheckiO 题解】Absolute Sorting,3g门户手机频道
查看 -

【Python CheckiO 题解】Multicolored Lamp,戴尔手机d43
查看 -

【Python CheckiO 题解】Xs and Os Referee,bambook官网
查看 -

【Python 千题 —— 基础篇】奇数列表,酷派5890电信版
查看 -

【Python 千题 —— 基础篇】进制转换:十进制转二进制,惠普笔记本型号大全
查看 -

【Python 基础】-- 在 mac OS 中安装 多个 python 版本,bingbar
查看