好的,下面是一个示例代码:
class IPAddress:
def __init__(self, white_list):
self.white_list = white_list # 白名单列表
def parse_ipv4(self, ip_str):
"""解析IPv4字符串地址"""
# 将IP地址拆分成四个数字段
fields = ip_str.split(".")
# 如果字段数不等于4,则输入不是有效的IPv4地址
if len(fields) != 4:
raise ValueError("Invalid IPv4 address")
# 将字段转换为整数
try:
ip_address = [int(field) for field in fields]
except ValueError:
raise ValueError("Invalid IPv4 address")
# 如果字段值不在0~255范围内,则输入不是有效的IPv4地址
for field in ip_address:
if field < 0 or field > 255:
raise ValueError("Invalid IPv4 address")
return ip_address
def in_white_list(self, ip_str):
"""判断IP地址是否在白名单范围内"""
# 解析IP地址
ip_address = self.parse_ipv4(ip_str)
# 遍历白名单列表
for start, end in self.white_list:
# 判断IP地址是否在白名单范围内
if start[0] <= ip_address[0] <= end[0] and start[1] <= ip_address[1] <= end[1] and start[2] <= ip_address[2] <= end[2] and start[3] <= ip_address[3] <= end[3]:
return True
return False