2017-01-23 11 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 
関連する問題