PHPで が返したデータを DB フィールドに保存したいのですが、これは実に簡単な作業です。問題は、Web サーバーが を通じて提供する IPv6 アドレスのテキスト表現$_SERVER["REMOTE_ADDR"]
の最大長に関する適切な情報が見つからないことです。$_SERVER["REMOTE_ADDR"]
テキスト表現を、アドレスが通常エンコードされる 128 ビットに変換することには興味がありません。 によって返される IPv6 アドレスを格納するために最大何文字必要かを知りたいだけです$_SERVER["REMOTE_ADDR"]
。
ベストアンサー1
45文字。
住所は
0000:0000:0000:0000:0000:0000:0000:0000
8 * 4 + 7 = 39
4 桁の数字が 8 グループあり、:
その間に 7 桁あります。
しかし、もしあなたがIPv4 マッピングされた IPv6 アドレス、最後の 2 つのグループは で区切って 10 進数で表記できます.
(例: ) [::ffff:192.168.100.228]
。完全に書き表すと次のようになります。
0000:0000:0000:0000:0000:ffff:192.168.100.228
(6 * 4 + 5) + 1 + (4 * 3 + 3) = 29 + 1 + 15 = 45
[0000:0000:0000:0000:0000:ffff:c0a8:64e4]
注意: これは入力/表示規則です。これは依然として 128 ビットのアドレスであり、保存する場合は、上記のアドレスのように生のコロンで区切られた形式に標準化するのがおそらく最善です。