web-dev-qa-db-ja.com

PHPを使用してMySQLデータベースに保存するIPアドレス

mysqlのIPアドレスの正しいフィールドタイプは何ですか?そして、PHPを使用してそれを保存する正しい方法は何ですか?

56
user552828

このチュートリアル が役立つかもしれません。

IPv4アドレスを保存する最も効率的な方法は、INTフィールド(予想されるVARCHARではない)を使用することです。 PHPの ip2long およびMySQLの INET_NTOA 関数またはPHPの long2ip 関数。

IPv6を保存する必要がある場合は、代わりにBINARYフィールドとPHPの inet_pton 関数。

61

128ビット(16バイト、BINARY(16)またはVARBINARY(16))の長さのバイナリフィールドに保存できます。任意のIPアドレスをバイナリ表現に変換するには、php関数 inet_pton 。この方法は、IPv4アドレスとIPv6アドレスの両方で機能します。 inet_ntop を使用して、保存されているIPアドレスの文字列表現を取得できます(バージョンに関係なく)

50
knittl

VARCHAR(45)は、IPv6を格納するのにも十分な長さがあるため、一般的に使用できます。

17
Sander