Cloudflare 提供了许多解决方案来保留原始客户端的 IP 地址,但主要是针对拥有物理盒子访问权限或拥有 IaaS 的人。
对于谷歌应用引擎,我怎样才能让它与 Cloudflare 一起工作,以便我仍然可以提取原始客户端的 IP 地址?
Cloudflare 提供了许多解决方案来保留原始客户端的 IP 地址,但主要是针对拥有物理盒子访问权限或拥有 IaaS 的人。
对于谷歌应用引擎,我怎样才能让它与 Cloudflare 一起工作,以便我仍然可以提取原始客户端的 IP 地址?
您还可以使用 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"];
}