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

时间:2016-03-03 02:21:31

标签: python python-2.7 ipv6 ipv4

我有一大堆字符串,我已经知道它拥有一个IP地址,我想确定它是IPv4还是IPv6。目前我正在检查字符串是否包含冒号:

version = 4
if ':' in ip_string:
    version = 6

有没有更快的方法来确定IP版本,因为我们已经知道它是一个IP地址。上述简单检查是否有可能返回错误的结果(例如,是否可以使用不带冒号的IPv6地址)?

1 个答案:

答案 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中进行了测试