在Python中,要确定一个IP地址是否是私有的,可以使用内置的ipaddress
模块。ipaddress
模块提供了用于操作IP地址和网络的类,例如IPv4Address
和IPv4Network
。
以下是一个简单的示例,展示了如何使用ipaddress
模块检查IP地址是否是私有的:
import ipaddress
def is_private_ip(ip: str) -> bool:
# 将输入的IP地址转换为IPv4Address对象
ip_address = ipaddress.IPv4Address(ip)
# 检查IP地址是否在私有地址范围内
private_ranges = [
ipaddress.IPv4Network('10.0.0.0/8'), # 10.0.0.0 至 10.255.255.255
ipaddress.IPv4Network('172.16.0.0/12'), # 172.16.0.0 至 172.31.255.255
ipaddress.IPv4Network('192.168.0.0/16') # 192.168.0.0 至 192.168.255.255
]
return any(ip_address in network for network in private_ranges)
# 示例
ip = '192.168.1.1'
print(is_private_ip(ip)) # 输出:True
在这个示例中,我们定义了一个名为is_private_ip
的函数,它接受一个字符串参数ip
,并返回一个布尔值,表示该IP地址是否在私有地址范围内。我们使用了ipaddress.IPv4Address
将输入的IP地址转换为一个IPv4地址对象,然后检查该地址是否在预定义的三个私有地址范围内。如果在范围内,则返回True
,否则返回False
。
这个方法不需要使用任何第三方库,并且可以很好地处理IPv4地址。如果您需要处理IPv6地址,可以使用ipaddress.IPv6Address
和ipaddress.IPv6Network
类。
领取专属 10元无门槛券
手把手带您无忧上云