-
ipaddress.ip_network(ip_mask)
strict=True为默认值,表示进行严格比对,网络地址错误则会抛出异常import ipaddress purpose_addr = "1.1.1.1/24" ipaddress.ip_network(purpose_addr)
执行结果:
也就是说,如果这个给定的网络地址是不可用的,那么将会抛出异常,如果我们想通过这个方法进行ip/mask进行判断的话,可以加上try进行捕获,如下:import ipaddress purpose_addr = "1.1.1.1/24" def ip_mask_verify(purpose_addr): try: ipaddress.ip_network(purpose_addr) except Exception as e: print(e) return False return True print(ip_mask_verify(purpose_addr))
执行结果:
-
ipaddress.ip_network(ip/mask, strict=False)
根据给出的ip_mask的值,通过ip_network()工厂函数计算出正确的网络地址【strict=False表示对于传入的ip/mask不进行严格比对,会进行修正操作,返回一个修正后的可用的网络地址】import ipaddress purpose_addr = "1.1.1.1/24" result_ip = ipaddress.ip_network(purpose_addr, strict=False) print(result_ip)
执行结果:
那么,我们可以通过下面的方法进行ip/mask校验操作:import ipaddress purpose_addr = "1.1.1.1/24" def ip_mask_verify(purpose_addr): result_ip = ipaddress.ip_network(purpose_addr, strict=False) print(type(result_ip)) # 返回的是一个IPv4或者IPv6对象,想要进行比较操作,需要进行类型转化,如下的str()操作 if purpose_addr != str(result_ip): return False return True print(ip_mask_verify(purpose_addr))
执行结果:
-
IPy.IP(ip_mask)
make_net=0为默认值,表示进行严格比对,网络地址错误则会抛出异常from IPy import IP purpose_addr = "1.1.1.1/24" a = IP(purpose_addr)
执行结果:
也就是说,如果这个给定的网络地址是不可用的,那么将会抛出异常,如果我们想通过这个方法进行ip/mask进行判断的话,可以加上try进行捕获,如下:from IPy import IP purpose_addr = "1.1.1.1/24" def ip_mask_verify(purpose_addr): try: IP(purpose_addr) except Exception as e: return False return True print(ip_mask_verify(purpose_addr))
执行结果:
-
IPy.IP(ip_mask,make_net=1)
【make_net=1表示对于传入的ip/mask不进行严格比对,会进行修正操作,返回一个修正后的可用的网络地址】from IPy import IP purpose_addr = "1.1.1.1/24" def ip_mask_verify(purpose_addr): result_ip = IP(purpose_addr, make_net=1) print(type(result_ip)) # 返回的是一个IPy.IP对象,想要进行比较操作,需要进行类型转化,如下的str()操作 if purpose_addr != str(result_ip): return False return True print(ip_mask_verify(purpose_addr))
执行结果:
校验ip/mask格式的网络地址是否可用
最新推荐文章于 2022-07-09 16:44:23 发布