使用 python 自带的 ipaddress 模块
一、ipv4
import ipaddress
# 判断 ipv4 地址格式是否正确 如:ip = "192.168.1.101"
ip = ipaddress.IPv4Address(ipv4)
# 判断 subnet 地址格式是否正确 如:subnet = "192.168.1.0/24"
network = ipaddress.IPv4Network(subnet)
# 判断ipv4 是否属于 subnet。True or False
return ip in network
二、ipv6
import ipaddress
# 判断 ipv6 地址格式是否正确 如:ip = "2001::101"
ip = ipaddress.IPv6Address(ipv4)
# 判断 subnet 地址格式是否正确 如:subnet = "2001::0/64"
network = ipaddress.IPv6Network(subnet)
# 判断ipv6 是否属于 subnet。 True or False
return ip in network
补充
import ipaddress
# 检查 ip 类型
def check_ip_type(ip):
try:
ipaddress.IPv4Address(ip)
return "IPv4"
except ipaddress.AddressValueError:
try:
ipaddress.IPv6Address(ip)
return "IPv6"
except ipaddress.AddressValueError:
return "Invalid IP"
标签:subnet,网段,python,ip,ipv4,ipv6,return,ipaddress
From: https://www.cnblogs.com/itsfei/p/17445303.html