• Python 验证 IP 地址


    IP 代表互联网协议,是分配给每台连接到互联网的计算机的唯一地址。 IP 地址有两个版本,即 IPv4 和 IPv6。

    IPv4 采用点分十进制表示法,由 4 个八位位组组成,每个八位位组包含 0 到 255 之间的数字。 IPv6 地址包含 8 组,每组 4 个十六进制数字,每组代表 16 位。

    冒号分隔组 (😃。 在本指南中,我们将验证 IPv4 地址


    在 Python 中验证 IP 地址

    验证IP地址意味着检查输入的IP是否有效。

    例如:

    Input: 192.168.52.124
    Output: Valid IP address
    
    Input: 656.1.2.3
    Output: Invalid IP address
    
    • 1
    • 2
    • 3
    • 4
    • 5

    使用 ipaddress 模块在 Python 中验证 IP 地址

    ipaddress 是 Python 中的一个模块,用于根据 IP 地址的类型(IPv4 或 IPv6)对 IP 地址进行检查和分类。 它还执行不同的操作,例如算术运算、比较等。

    该模块有一个名为 ip_address() 的方法,用于验证 IP 地址。 该函数以字符串IP作为输入,如果它能够成功地将字符串IP转换为IPv4或IPv6地址的对象,则意味着输入的IP地址是有效的。

    否则,它将引发一个值错误,表明该 IP 似乎不是 IPv4 或 IPv6 地址。 我们在下面的代码中导入了 ipaddress 模块,并将整个代码写入了 try-except 块中。

    如果 IP 有效,则不会引发异常,如果无效,则值错误异常将由 except 块处理。

    情况 1:对于有效的 IP 地址

    #Python 3.x
    import ipaddress
    try:
        ip = ipaddress.ip_address("192.168.1.1")
        print("Valid IP Address")
    except ValueError:
        print("Invalid IP Address")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    输出:

    #Python 3.x
    Valid IP Address
    
    • 1
    • 2

    情况 2:IP 地址无效

    #Python 3.x
    import ipaddress
    try:
        ip = ipaddress.ip_address("992.168.1.1")
        print("Valid IP Address")
    except ValueError:
        print("Invalid IP Address")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    输出:

    #Python 3.x
    Invalid IP Address
    
    • 1
    • 2

    使用 RegEx.search() 方法在 Python 中验证 IP 地址

    验证 IP 地址的另一种方法是通过正则表达式将其与有效 IP 地址的预定义模式进行匹配。 我们通过调用 re 模块的 search() 方法并传递正则表达式和 IP 作为参数,在以下代码中验证了 IP 地址。

    如果 IP 有效,则此方法返回 True。 否则,返回 False。

    示例代码:

    #Python 3.x
    import re
    ip = "192.168.2.3"
    regex = "^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])$"
    if(re.search(regex, ip)):
        print("Valid IP Address")
    else:
        print("Invalid IP Address")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    输出:

    #Python 3.x
    Valid IP Address
    
    • 1
    • 2

    在 Python 中手动验证 IP 地址

    我们可以在没有任何内置库正则表达式的情况下验证 IP 地址。 我们创建了一个函数,通过检查以下代码中的这三个条件来验证 IP 地址。

    如果代码中满足以下任一条件,则 IP 无效。

    1. 八位位组的数量不是四个。
    2. 任何八位字节都包含除整数以外的任何内容。
    3. 八位位组内的任何数字都在 0-255 范围之外。

    示例代码:

    #Python 3.x
    def validate_ip_address(ip):
        octects = ip.split(".")
        if len(octects) != 4:
            return "Invalid IP"
        for number in octects:
            if not isinstance(int(number), int):
                return "Invalid IP"
            if int(number) < 0 or int(number) > 255:
                return "Invalid IP"
        return "Valid IP"
    validate_ip_address("192.168.-1.1")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    输出:

    #Python 3.x
    'Invalid IP'
    
    • 1
    • 2
  • 相关阅读:
    k8s-核心实战
    C++设计模式---单例模式
    gRPC入门
    java计算机毕业设计ssm+vue灰灰宠物美容网站
    BM1684实战记录
    视频转换器WinX HD Video Converter mac中文特点介绍
    ✿✿✿JavaScript --- BOM、DOM对象
    k8s--基础--29.2--ingress--安装Ingress Controller和配置Ingress
    已安装的nginx追加ssl模块
    Linux-软中断概述
  • 原文地址:https://blog.csdn.net/fengqianlang/article/details/133737448