文件内容格式有:
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
编程语言
4
文件名:【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)
同类推荐
-

【Python 19】BMR计算器3.0(字符串分割与格式化输出),psp ereader
查看 -

【Python · PyTorch】数据基础,泡泡网手机频道
查看 -

【Python 千题 —— 基础篇】分割有效信息,联想a750e
查看 -

【Python 训练营】N_17 冒泡排序,transphone
查看 -

【Python】AttributeError- module lib has no attribute X509_V_FLAG_CB_ISSUER_CHECK,索爱neo
查看 -

【Python】Fastapi swagger-ui.css 、swagger-ui-bundle.js 无法加载,docs无法加载,redocs无法使用,p2p电视
查看
控制面板
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接