どうですか:
BINARY(16)
それは十分に効果的であるはずです。
そのバグレポートに記載されているように、現在、MySQLサーバーでテキストのIPv6アドレスをバイナリとの間で変換する機能はありません。これを行うには、アプリケーションで実行するか、MySQLサーバーでUDF(ユーザー定義関数)を作成する必要があります。
更新:
MySQL 5.6.3はIPv6アドレスをサポートしています。以下を参照してください: " INET6_ATON(expr) "。
データ型はVARBINARY(16)
です。 BINARY(16)
の代わりに 前に提案したように。これの唯一の理由は、MySQL関数がIPv6アドレスとIPv4アドレスの両方で機能することです。 BINARY(16)
IPv6アドレスのみを保存する場合は問題なく、1バイトを節約します。 VARBINARY(16)
IPv6アドレスとIPv4アドレスの両方を処理するときに使用する必要があります。
古いバージョンのMySQLおよびMariaDBの実装については、以下を参照してください。 "IPV6関数を使用したMYSQL5の拡張 "。