1. ホーム
  2. ip

[解決済み] IPv6アドレスのテキスト表現の最大長?

2022-03-20 04:23:26

質問

が返すデータを保存したい。 $_SERVER["REMOTE_ADDR"] をPHPでDBのフィールドに入れるという、実にシンプルなタスクです。問題は、PHPのフィールドの最大長について適切な情報が見つからないことです。 テキスト表現 のIPv6アドレスは、ウェブサーバが $_SERVER["REMOTE_ADDR"] .

が返すIPv6アドレスを格納するために必要な最大文字数を知りたいだけなのです。 $_SERVER["REMOTE_ADDR"] .

解決方法は?

45文字 .

アドレスは、次のようなものを想像してください。

0000:0000:0000:0000:0000:0000:0000:0000

8 * 4 + 7 = 39

7を含む4桁の8グループ : を挟んでいます。

しかし、もしあなたが IPv4マッピングされたIPv6アドレス で区切られた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

これは入力/表示上の慣習であり、128ビットのアドレスであることに変わりはなく、保存にはコロンで区切られた生の形式、つまり、以下の形式を標準化することがおそらく最善であろう。 [0000:0000:0000:0000:0000:ffff:c0a8:64e4] は上記のアドレスです。