python中正则表达式ip匹配
时间: 2023-10-09 08:04:46 浏览: 84
使用正则表达式匹配IP地址的方法如下:
```python
import re
# 匹配IPv4地址
ipv4_pattern = r'^((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$'
# 匹配IPv6地址
ipv6_pattern = r'^(([0-9a-fA-F]{1,4}):){7}([0-9a-fA-F]{1,4})$'
# 测试数据
ip_list = ['192.168.0.1', '172.16.254.1', '10.0.0.1', '2001:0db8:85a3:0000:0000:8a2e:0370:7334', 'fe80::226:2dff:fe4a:3f4']
# 匹配IPv4地址
for ip in ip_list:
if re.match(ipv4_pattern, ip):
print(f'{ip} is a valid IPv4 address.')
else:
print(f'{ip} is not a valid IPv4 address.')
# 匹配IPv6地址
for ip in ip_list:
if re.match(ipv6_pattern, ip):
print(f'{ip} is a valid IPv6 address.')
else:
print(f'{ip} is not a valid IPv6 address.')
```
输出结果:
```
192.168.0.1 is a valid IPv4 address.
172.16.254.1 is a valid IPv4 address.
10.0.0.1 is a valid IPv4 address.
2001:0db8:85a3:0000:0000:8a2e:0370:7334 is a valid IPv6 address.
fe80::226:2dff:fe4a:3f4 is a valid IPv6 address.
```