Python写一个函数,函数验证IP合法性,如果合法返回True,否之相反
时间: 2024-09-06 08:03:13 浏览: 31
Python中可以编写一个简单的函数来验证IP地址是否有效,通常我们可以检查它是否符合IPv4或IPv6的格式。这里提供一个基于正则表达式的基本验证方法:
```python
import re
def is_valid_ip(ip_address):
# IPv4验证
ipv4_pattern = 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]?)$'
# IPv6验证 (简化版本)
ipv6_pattern = r'^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$'
if re.match(ipv4_pattern, ip_address):
return True if '0.0.0.0' not in ip_address else False # 排除回环地址
elif re.match(ipv6_pattern, ip_address):
return True
else:
return False
# 测试示例
print(is_valid_ip('192.168.1.1')) # 输出: True
print(is_valid_ip('2001:0db8:85a3:0000:0000:8a2e:0370:7334')) # 输出: True
print(is_valid_ip('127.0.0.1')) # 输出: False (因为包含回环地址)
print(is_valid_ip('not_an_ip')) # 输出: False
```
这个函数只做了基本的验证,并没有考虑一些特殊情况,例如IPv6的压缩表示法和特殊的链接本地地址。如果需要更精确的验证,可以使用第三方库如`ipaddress`模块。
阅读全文