-
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格式的網絡地址是否可用
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.