2016-03-29 8 views
1

私はちょうど私が訪問者のIPアドレスを取得したいという問題があります。すべての人がうまくいっていますが、1人のユーザーだけが私にIPv6を与えます。 これは私があなたに与えることができるコードです、さらに私はちょうどcloudflare apache2 Modをインストールしました。クラウドフレアの裏に訪問者ipv4を取得する

$_SERVER['REMOTE_ADDR'] = $_SERVER["HTTP_CF_CONNECTING_IP"] ? $_SERVER["HTTP_CF_CONNECTING_IP"] : $_SERVER["REMOTE_ADDR"]; 
$ip = $_SERVER['REMOTE_ADDR']; 

if(isset($_SERVER['HTTP_CF_CONNECTING_IP'])){ 
    $ip = $_SERVER['HTTP_CF_CONNECTING_IP']; 
} 
+0

IPv6アドレス* *は、ユーザーのアドレスです。なぜあなたは彼らがIPv4アドレスを持っていると思いますか? –

+0

私はこれがユーザーアドレスであることを知っています。さて、私は同じユーザーからIPv4を取得したwebsocket接続を持っているので、これらの2つの値を比較する必要があります。 – WLFCRK

答えて

3

でのCloudFlareでIPv6サポートを無効にするだろう、これを行うための唯一の方法:DNSに

1)レコードだけを残して、すべてのAAAAレコードを()を除去。 2)CloudFlareダッシュボードのネットワークに入り、「IPv6互換性」をオフにします。

私はこれをお勧めしません。すぐにあなたのサイトに接続できない人がいるかもしれません。代わりに、プラットフォームがIPv6を完全にサポートしていることを確認することをお勧めします。

0

CFでは、ipv6を無効にするのが少し難しくなっています(GUIからは不可能ですが、apiで行う必要があります)。ただし、ヘッダーに「Pseudo IPv4」アドレスを追加するオプションが追加されました。 Cf-Connecting-IPX-Forwarded-Forを上書きするか、Cf-Pseudo-IPv4ヘッダーを追加します。

これは(まだ)サポートIPv6はないレガシーアプリケーションのためのストップギャップとして非常に便利です - https://support.cloudflare.com/hc/en-us/articles/202494830-Pseudo-IPv4-Supporting-IPv6-addresses-in-legacy-IPv4-applications

関連する問題