在 Python 中,判断 IP 地址的合法性是一个常见的需求。本文将介绍三种方法来判断 IP 地址的合法性,包括使用正则表达式、使用 socket 模块和使用 ipaddress 模块。
1. 使用正则表达式判断 IP 地址合法性
使用正则表达式是判断 IP 地址合法性的一种常见方法。以下是一个使用正则表达式判断 IP 地址合法性的示例:
import re
def is_valid_ip_address(ip_address):
pattern = r'^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$'
if re.match(pattern, ip_address):
return True
else:
return False
ip_address = '192.168.0.1'
if is_valid_ip_address(ip_address):
print(ip_address, '是一个合法的 IP 地址')
else:
print(ip_address, '不是一个合法的 IP 地址')
这个程序使用正则表达式 ^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$
来判断 IP 地址的合法性。如果 IP 地址合法,则返回 True,否则返回 False。
2. 使用 socket 模块判断 IP 地址合法性
使用 socket 模块也可以判断 IP 地址的合法性。以下是一个使用 socket 模块判断 IP 地址合法性的示例:
import socket
def is_valid_ip_address(ip_address):
try:
socket.inet_aton(ip_address)
return True
except socket.error:
return False
ip_address = '192.168.0.1'
if is_valid_ip_address(ip_address):
print(ip_address, '是一个合法的 IP 地址')
else:
print(ip_address, '不是一个合法的 IP 地址')
这个程序使用 socket.inet_aton()
函数来判断 IP 地址的合法性。如果 IP 地址合法,则返回 True,否则返回 False。
3. 使用 ipaddress 模块判断 IP 地址合法性
使用 ipaddress 模块也可以判断 IP 地址的合法性。以下是一个使用 ipaddress 模块判断 IP 地址合法性的示例:
import ipaddress
def is_valid_ip_address(ip_address):
try:
ipaddress.ip_address(ip_address)
return True
except ValueError:
return False
ip_address = '192.168.0.1'
if is_valid_ip_address(ip_address):
print(ip_address, '是一个合法的 IP 地址')
else:
print(ip_address, '不是一个合法的 IP 地址')
这个程序使用 ipaddress.ip_address()
函数来判断 IP 地址的合法性。如果 IP 地址合法,则返回 True,否则返回 False。
示例说明
以下是两个示例说明:
示例一
判断 IP 地址 10.0.0.1
是否合法:
import re
def is_valid_ip_address(ip_address):
pattern = r'^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$'
if re.match(pattern, ip_address):
return True
else:
return False
ip_address = '10.0.0.1'
if is_valid_ip_address(ip_address):
print(ip_address, '是一个合法的 IP 地址')
else:
print(ip_address, '不是一个合法的 IP 地址')
输出结果为:
10.0.0.1 是一个合法的 IP 地址
示例二
判断 IP 地址 192.168.0.256
是否合法:
import ipaddress
def is_valid_ip_address(ip_address):
try:
ipaddress.ip_address(ip_address)
return True
except ValueError:
return False
ip_address = '192.168.0.256'
if is_valid_ip_address(ip_address):
print(ip_address, '是一个合法的 IP 地址')
else:
print(ip_address, '不是一个合法的 IP 地址')
输出结果为:
192.168.0.256 不是一个合法的 IP 地址
总结
本文介绍了三种方法来判断 IP 地址的合法性,包括使用正则表达式、使用 socket 模块和使用 ipaddress 模块。在实际开发中,我们可以根据需要选择适当的方法来判断 IP 地址的合法性。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Python判定IP地址合法性的三种方法 - Python技术站