确定字符串表示形式的IP地址版本的最快方法是什么

时间:2017-01-23 09:18:40

标签: python optimization ip

我正在使用python,我需要确定字符串表示中给定IP地址的版本。我需要多次重复这个,所以我想尽快做到这一点(即不创建IpAddress对象并使用.version)。

我知道给定的字符串有效并代表IP地址。

现在我正在考虑:

if ipstring[1] == '.' or ipstring[2] == '.' or ipstring[3] == '.':
    version = 4
else:
    version = 6

我有什么更快的方式可以俯视吗?一旦IPv6变得越来越普遍,我可以先转向检查v6:

if ipstring[1] == ':' or ipstring[2] == ':':
    version = 6
else:
    version = 4

除此处列出的方法之外还有其他快速方法吗?

1 个答案:

答案 0 :(得分:1)

由于不同版本的IP地址在其表示中使用不同的分隔符(即"."":"),并且您确定字符串代表有效地址,您可以这样做:

if "." in ipstring: 
    version = 4
else:
    version = 6