我有一大堆字符串,我已经知道它拥有一个IP地址,我想确定它是IPv4还是IPv6。目前我正在检查字符串是否包含冒号:
version = 4
if ':' in ip_string:
version = 6
有没有更快的方法来确定IP版本,因为我们已经知道它是一个IP地址。上述简单检查是否有可能返回错误的结果(例如,是否可以使用不带冒号的IPv6地址)?
答案 0 :(得分:0)
在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中进行了测试