Cloudflare は、元のクライアントの IP アドレスを保持するためのソリューションを多数提供していますが、ほとんどの場合、物理ボックスへのアクセス権を所有しているユーザーや IaaS を使用しているユーザー向けです。
Google アプリ エンジンの場合、元のクライアントの IP アドレスを引き続き抽出できるように Cloudflare と連携させるにはどうすればよいですか?
Cloudflare は、元のクライアントの IP アドレスを保持するためのソリューションを多数提供していますが、ほとんどの場合、物理ボックスへのアクセス権を所有しているユーザーや IaaS を使用しているユーザー向けです。
Google アプリ エンジンの場合、元のクライアントの IP アドレスを引き続き抽出できるように Cloudflare と連携させるにはどうすればよいですか?
HTTP_X_FORWARDED_FOR を使用して「実際の」IP を取得することもできます。これらの詳細を使用して、Javaでそれを取得できるようです。
String ipaddress = request.getHeader("HTTP_X_FORWARDED_FOR");
if (ipaddress == null)
ipaddress = request.getRemoteAddr();
ソース = http://thepcspy.com/read/getting_the_real_ip_of_your_users/
関連して役立つかもしれません: http://www.coderanch.com/t/293684/JSP/java/client-IP-address-Domain-Java
cloudflare サポートによると、ヘッダーを設定しています: CF-Connecting-IP
.
このヘッダーをJavaで取得するには、次を使用できます
String paramIpAddress = request.getHeader("CF-Connecting-IP");
if (paramIpAddress == null) {
paramIpAddress = request.getRemoteAddr();
}
次のサーバー変数を使用できます。
$_SERVER["HTTP_CF_CONNECTING_IP"] 実際の訪問者の IP アドレス
$_SERVER["HTTP_CF_IPCOUNTRY"] 訪問者の国
$_SERVER["HTTP_CF_VISITOR"] HTTP または HTTPS の場合
以下は、PHP のサンプル コードです。
if (isset($_SERVER["HTTP_CF_CONNECTING_IP"])) {
$_SERVER['REMOTE_ADDR'] = $_SERVER["HTTP_CF_CONNECTING_IP"];
}