IP アドレスを格納するためのフィールドがあり、このコードを使用して IPv4 アドレスを整数に変換しているので、ソート可能なバージョンのアドレスを別の bigint フィールドに保存して、より自然なソートを実現できます (これに基づく):
octets = ip.split('.')
return (int(octets[0]) * 256**3) + (int(octets[1]) * 256**2) + (int(octets[2]) * 256) + (int(octets[3]))
bigint フィールドには大きすぎる IPv6 アドレスで同様のことを行うにはどうすればよいですか?
また、IPv6 の整数変換を行う簡単な方法はありますか? Python3 はこれを「ipaddress」モジュールで提供しているようですが、私は 2.7 を使用しています。アドレスからゼロを除外するさまざまな方法をサポートしたいと考えています。
更新:Django 1.5を使用しています