Python 检查IP地址版本的最快方法

Python 检查IP地址版本的最快方法,python,python-2.7,ipv6,ipv4,Python,Python 2.7,Ipv6,Ipv4,我有一大组字符串,我已经知道它包含一个IP地址,我想确定它是IPv4还是IPv6。当前我正在检查字符串是否包含冒号: version = 4 if ':' in ip_string: version = 6 鉴于我们已经知道它是一个IP地址,有没有更快的方法来确定IP版本。上面的简单检查是否有可能返回错误的结果(例如,是否可能有一个没有冒号的IPv6地址)?使用python中的ipaddress来检查版本。 下面是一个例子- import ipaddress #str1='10.10.

我有一大组字符串,我已经知道它包含一个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?IPv6地址使用冒号
,而不是分号
。IPv6地址的字符串表示形式将包含冒号。@idjaw python 2.7,我还编辑了标记以添加itPractice makes perfect.:)@瓦西里斯:我不反对。读这个。可能会导致一些事情或给你更多的提示。