可以使用Python3中的ipaddress库
来判断一个IP是否在某一个网段下。以下是一个简单的示例代码:
python
import ipaddress
def check_ip_in_network(ip, network):
ip_obj = ipaddress.ip_address(ip)
network_obj = ipaddress.ip_network(network, strict=False) # strict=False允许IP和网络地址的大小不匹配
return ip_obj in network_obj
# 示例
ip_to_check = "192.168.1.10" # 带检查的IP
network_range = "192.168.1.0/24" # 网段
if check_ip_in_network(ip_to_check, network_range):
print(f"{ip_to_check} 在 {network_range} 网段内")
else:
print(f"{ip_to_check} 不在 {network_range} 网段内")
请注意,strict=False
参数用于允许IP地址和网络地址的大小不匹配。例如,如果网络地址是"192.168.1.0/24",那么IP地址"192.168.1.10"将被视为在这个网络范围内。
这是一个简单的方法,适用于大多数情况。如果需要更复杂的网络计算,可以进一步查阅ipaddress
模块的文档以获取更多信息:ipaddress --- IPv4/IPv6 操作库 --- Python 3.12.1 文档