1

可能な限り要約したいIPv4アドレス(〜18k)の非常に長いリストがあります:例

119.195.74.210
119.196.154.2
119.196.247.223
119.197.20.186
119.199.160.107
119.199.160.32
119.199.160.33
119.199.160.34
119.199.160.54
119.199.160.55

次のような結果になるはずです

119.195.74.210/32
119.196.154.2/32
119.196.247.223/32
119.197.20.186/32
119.199.160.107/32
119.199.160.32/31
119.199.160.34/32
119.199.160.54/31

速度が重要です。

助言がありますか?

4

1 に答える 1

1

モジュールを使用しnetaddrます。IP アドレスを含むテキスト ファイルがあると仮定すると、コードは次のようになります。

import sys
from netaddr import IPAddress, cidr_merge

fh     = open (sys.argv[1], 'r')
iplist = list()
for addr in fh:
    addr = IPAddress (addr.strip())
    iplist.append (addr)

fh.close()
print cidr_merge (iplist)
于 2014-07-08T17:23:38.663 に答える