📜  验证 IP 地址 - Python (1)

📅  最后修改于: 2023-12-03 15:42:32.268000             🧑  作者: Mango

验证 IP 地址 - Python

IP 地址是互联网通信中使用的一个地址,用于唯一标识一个设备在网络中的位置。在 Python 中,我们可以使用正则表达式来验证一个字符串是否为合法的 IP 地址。本文将介绍如何使用 Python 中的正则表达式来验证 IP 地址。

IP 地址的结构

IP 地址通常由四个部分组成,每个部分用 "." 隔开,每个部分的取值范围为 0-255。例如,一个典型的 IP 地址为 192.168.1.1。

验证 IP 地址的正则表达式

使用正则表达式验证 IP 地址的方法如下:

import re

def is_valid_ip_address(ip_address):
    pattern = re.compile(r'^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$')
    return bool(pattern.match(ip_address))

print(is_valid_ip_address('192.168.1.1'))  # True
print(is_valid_ip_address('256.0.0.0'))   # False

上述代码中,使用 re 模块中的 compile() 方法创建了一个正则表达式对象 pattern,该正则表达式可以匹配符合 IP 地址格式的字符串。具体来说,该正则表达式的含义如下:

  • 以 "^" 开头,以 "$" 结尾。
  • 使用小括号括起来的部分表示一个分组, "|" 表示或的关系。
  • 分组中,有三个可以匹配 0-255 的子正则表达式。25[0-5] 匹配 250-255,2[0-4][0-9] 匹配 200-249,[01]?[0-9][0-9]? 匹配 0-199。
  • 分组后跟着 ".",表示四个部分之间用 "." 隔开。
  • 最后一个子正则表达式可以匹配 0-255 的数值,表示一个 IP 地址的最后一部分。

我们可以使用 pattern.match() 方法来判断一个字符串值是否符合正则表达式 pattern 的要求。如果匹配成功,则返回一个 match 对象,否则返回 None。

结论

本文介绍了如何使用 Python 中的正则表达式来验证 IP 地址。Python 中的 re 模块提供了丰富的正则表达式操作函数和方法,可以帮助我们快速地进行字符串的匹配和解析。如果您对 Python 正则表达式还不熟悉,可以阅读 Python 官方文档中的正则表达式教程,以便更好地理解和掌握这个强大的工具。