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 无效。
- 八位位组的数量不是四个。
- 任何八位字节都包含除整数以外的任何内容。
- 八位位组内的任何数字都在 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")
输出:
#Python 3.x
'Invalid IP'
相关文章
Pandas DataFrame DataFrame.shift() 函数
发布时间:2024/04/24 浏览次数:133 分类:Python
-
DataFrame.shift() 函数是将 DataFrame 的索引按指定的周期数进行移位。
Python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:Python
-
Python Pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
Pandas read_csv()函数
发布时间:2024/04/24 浏览次数:254 分类:Python
-
Pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 DataFrame 中。
Pandas 多列合并
发布时间:2024/04/24 浏览次数:628 分类:Python
-
本教程介绍了如何在 Pandas 中使用 DataFrame.merge()方法合并两个 DataFrames。
Pandas loc vs iloc
发布时间:2024/04/24 浏览次数:837 分类:Python
-
本教程介绍了如何使用 Python 中的 loc 和 iloc 从 Pandas DataFrame 中过滤数据。
在 Python 中将 Pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:Python
-
了解如何在 Python 中将 Pandas 系列日期时间转换为字符串