2017-01-23 40 views
0

我正在使用python,我需要確定字符串表示形式中給定IP地址的版本。我需要重複很多次,所以我想盡可能快地做到這一點(即不創建IpAddress對象並採取.version)。什麼是確定字符串表示形式的IP地址版本的最快方法

我知道給定的字符串是有效的,並且表示一個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 

是否有任何其他快速的方法比這裏列出的一個?

+0

你怎麼樣正在使用'timeit'模塊來提高他們的速度? –

+0

我知道這種方法的速度。如果還有其他更快捷的方法,我很感興趣。 – jpou

回答

1

不同版本的IP地址在他們的交涉(即"."":")使用不同的分隔符,你確保字符串代表有效的地址,你可以這樣做:

if "." in ipstring: 
    version = 4 
else: 
    version = 6 
相關問題