IPv6アドレスをIPv4アドレスに変換する必要があります。これを行うには、私はpedmillon's answer to a related questionからコードを使用:PHPでIPv6をIPv4アドレスに変換する
$ipv6 = $_SERVER['REMOTE_ADDR'];
$ipv4 = hexdec(substr($ipv6, 0, 2)). "." . hexdec(substr($ipv6, 2, 2)). "." . hexdec(substr($ipv6, 5, 2)). "." . hexdec(substr($ipv6, 7, 2));
私は自分のローカルホストでそれを試してみましたが、:: 1は0.1.0.0に変換されます。このコードは正しく動作していますか?
私は、0.1.0.0の代わりに127.0.0.1を表示する必要があります。
IPv6アドレスをIPv4アドレスに変換することはできません。それは、リンゴをバナナに変えたいのと同じです。まず、** 340,282,366,920,938,463,463,374,607,431,768,211,456 **の可能なIPv6アドレスがありますが、** 4,294,967,296 **のIPv4アドレスは可能です。それで、私は洗練させましょう。それは、いくつかの銀河のリンゴを一つのバナナに変えたいのと同じです。 – spectras
hmm ..もしApacheに代わりにIPv4アドレスを使用させるのが最善の解決策でしょうか? –
未来を証明する解決策は、ipv6をサポートすることです。移行を容易にするために、両方のシステムを処理したくない場合は、ipv6アドレス空間にマップされたipv4アドレスをサーバに伝えることができます。そこからipv6で作業します。 – spectras