python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python验证IP地址

Python中验证IP地址的方法详解

作者:迹忆客

IP 代表互联网协议,是分配给每台连接到互联网的计算机的唯一地址,本文将为大家简单介绍一下在 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

使用 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")

输出:

#Python 3.x
Valid IP Address

情况 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")

输出:

#Python 3.x
Invalid IP Address

使用 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")

输出:

#Python 3.x
Valid IP Address

在 Python 中手动验证 IP 地址

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

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

示例代码:

#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")

输出:

#Python 3.x
'Invalid IP'

方法补充

基于Python实现IP地址验证程序

这是一个使用Python编写的简单IP地址验证程序。程序接受用户输入的IP地址,然后对其进行验证,确保每个地址段都是数字且在0到255之间。如果IP地址格式正确,程序会输出“IP地址输入正确”;如果格式错误,程序会指出错误并退出。

环境配置

Python 3.x

项目分布

详细代码

cause = True  # 设置判断网址是否正确的标志变量为真
ip = input('请输入IP地址:\n').strip(' ')
line = ip.split('.')
if len(line) == 4:  # 如果网址按“.”分为4段
    for item in line:  # 对网址各段进行判断
        if item.isdigit():  # 是否为数字
            if int(item) > 255 or int(item) < 0:
                print('IP地址段输入大于255或小于0错误,将退出!!')
                cause = False  # 网址错误,判断网址标志变量为假
                break  # 退出循环
        else:
            print('IP地址段输入非数字错误(只能输入数字或.),将退出!!')
            cause = False
            break
    if cause:
        print('IP地址输入正确!!')
else:
    print('IP地址输入多于或少于4段地址错误,将退出!!')

小结

这是一个简单的Python程序,用于验证用户输入的IP地址是否格式正确。程序通过分割输入的字符串并检查每个部分,确保它们是有效的数字并且符合。

到此这篇关于Python中验证IP地址的方法详解的文章就介绍到这了,更多相关Python验证IP地址内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文