创建一个解析IPv4字符串地址的类,判断IP地址是否在白名单范围内

该代码定义了一个`IPAddress`类,用于处理IPv4地址。类中包含`parse_ipv4`方法,用于验证并解析IPv4字符串,以及`in_white_list`方法,检查给定的IP地址是否在指定的白名单范围内。如果IP地址格式不正确或超出0-255范围,会抛出`ValueError`。此外,代码还涉及到了IP地址的范围比较,确保IP在白名单列表内。
摘要由CSDN通过智能技术生成

好的,下面是一个示例代码:

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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值