我有一大组字符串,我已经知道它包含一个 IP 地址,并且我想确定它是 IPv4 还是 IPv6。目前我正在检查字符串是否包含冒号:
version = 4
if ':' in ip_string:
version = 6
考虑到我们已经知道它是一个 IP 地址,是否有更快的方法来确定 IP 版本。上述简单检查是否有可能返回错误结果(例如是否可能有不带冒号的 IPv6 地址)?
最佳答案
在python中使用ipaddress来检查版本。 下面是示例-
import ipaddress
#str1='10.10.10.2/24'
str1 = '2b11::327a:7b00/120'
[address, netmask] = str1.split('/')
ip_ver = ipaddress.ip_address(str(address))
if ip_ver.version == 4:
print('IPv4')
else:
print('IPv6')
输出:
IPv6
注意:在 Python 3.7.2 中测试
关于python - 检查IP地址版本的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35761982/