在Python中,判断一个字符串是否是合法的IPv4地址,可以通过以下几种方法:
1. 使用正则表达式:
```python
import re
def is_ipv4(ip: str) -> bool:
pattern = r'^((25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]|[1-9][0-9]|[1-9])\.){3}(25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]|[1-9][0-9]|[1-9])$'
return bool(re.match(pattern, ip))
print(is_ipv4('192.168.1.255')) 输出:True
print(is_ipv4('192.168.1.2a0')) 输出:False
2. 使用字符串分割和列表推导式:
```python
def is_ipv4(ip: str) -> bool:
segments = ip.split('.')
return all(segment.isdigit() and 0 <= int(segment) <= 255 for segment in segments)
print(is_ipv4('192.168.1.255')) 输出:True
print(is_ipv4('192.168.1.2a0')) 输出:False
3. 使用内置的`ipaddress`模块(Python 3.3及以后版本):
```python
import ipaddress
def is_ipv4(ip: str) -> bool:
try:
ipaddress.IPv4Address(ip)
return True
except ipaddress.AddressValueError:
return False
print(is_ipv4('192.168.1.255')) 输出:True
print(is_ipv4('192.168.1.2a0')) 输出:False
以上方法都可以用来判断一个字符串是否是合法的IPv4地址。您可以根据自己的需要选择合适的方法