接入高防ip客户端获取真实ip的方法

  这篇文章主要介绍了关于PHP、Java获取客户端真实ip地址的方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下。  仅适用于网站类转发规则  经过代理以后,由于在客户端和服务之间增加了中间层,因此服务器无法直接拿到客户端的ip,服务器端应用也无法直接通过转发请求的地址返回给客户...

接入高防ip客户端获取真实ip的方法

  这篇文章主要介绍了关于PHP、Java获取客户端真实ip地址的方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下。

  仅适用于网站类转发规则

  经过代理以后,由于在客户端和服务之间增加了中间层,因此服务器无法直接拿到客户端的ip,服务器端应用也无法直接通过转发请求的地址返回给客户端。但是在转发请求的HTTP头信息中,增加了X-FORWARDED-FOR 、X-Real-ip信息。用以跟踪原有的客户端ip地址和原来客户端请求的服务器地址。

  先说说这些请求头的意思

  X-Forwarded-For

  这是一个 Squid 开发的字段,只有在通过了HTTP代理或者负载均衡服务器时才会添加该项。

  格式为X-Forwarded-For:client1,proxy1,proxy2,一般情况下,第一个ip为客户端真实ip,后面的为经过的代理服务器ip。现在大部分的代理都会加上这个请求头。

  X-Real-ip

  nginx代理一般会加上此请求头。

  php获取客户端ip地方法如下

  1、REMOTE_ADDR

  2、HTTP_X_FORWARDED_FOR

  3、HTTP_CLIENT_ip

  4、HTTP_X_REAL_ip

  REMOTE_ADDR 是你的客户端跟你的高防ip所在的服务器“握手”时候的ip。如果使用了“匿名代理”,REMOTE_ADDR将显示代理服务器的ip。

  HTTP_CLIENT_ip 是代理服务器发送的HTTP头。如果是“超级匿名代理”,则返回none值。同样,REMOTE_ADDR也会被替换为这个代理服务器的ip。

  $_SERVER['REMOTE_ADDR']; //访问端(有可能是用户,有可能是代理的)ip

  $_SERVER['HTTP_X_FORWARDED_FOR']; //用户是在哪个ip使用的代理(有可能存在,也可以伪造)

  $_SERVER['HTTP_CLIENT_ip']; //代理端的(有可能存在,可伪造)

  一、没有使用代理服务器的情况:

  REMOTE_ADDR = 您的 ip

  HTTP_X_FORWARDED_FOR = 没数值或不显示

  二、使用代理服务器的情况:

  REMOTE_ADDR = 最后一个代理服务器 ip

  HTTP_X_FORWARDED_FOR = 您的真实 ip ,经过多个代理服务器时,这个值类似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

  获取客户端真实的ip地址实例:

  /**

  * 获取客户端ip

  */

  function getClientip() {

  $ip = "unknown";

  /*

  * 访问时用localhost访问的,读出来的是“::1”是正常情况。

  * ::1说明开启了ipv6支持,这是ipv6下的本地回环地址的表示。

  * 使用ip地址访问或者关闭ipv6支持都可以不显示这个。

  * */

  if (isset($_SERVER)) {

  if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])) {

  $ip = $_SERVER["HTTP_X_FORWARDED_FOR"];

  } elseif (isset($_SERVER["HTTP_X_REAL_ip"])) {

  $ip = $_SERVER["HTTP_X_REAL_ip"];

  } elseif (isset($_SERVER["HTTP_CLIENT_ip"])) {

  $ip = $_SERVER["HTTP_CLIENT_ip"];

  } else {

  $ip = $_SERVER["REMOTE_ADDR"];

  }

  } else {

  if (getenv('HTTP_X_FORWARDED_FOR')) {

  $ip = getenv('HTTP_X_FORWARDED_FOR');

  } elseif (getenv('HTTP_X_REAL_ip')) {

  $ip = getenv('HTTP_X_REAL_ip');

  } elseif (getenv('HTTP_CLIENT_ip')) {

  $ip = getenv('HTTP_CLIENT_ip');

  } else {

  $ip = getenv('REMOTE_ADDR');

  }

  }

  if(trim($ip)=="::1"){

  $ip="127.0.0.1";

  }

  return $ip;

  }

  Java获取客户端真实ip地址方法

  在JSP里,获取客户端的ip地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实ip地址了。

  下面是一个参考获取客户端ip地址的方法:

  public String getClientip(HttpServletRequest request) {

  String ip = request.getHeader("x-forwarded-for");

  if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {

  ip = request.getHeader("Proxy-Client-ip");

  }

  if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {

  ip = request.getHeader("WL-Proxy-Client-ip");

  }

  if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {

  ip = request.getRemoteAddr();

  }

  return ip;

  }

TAG: 客户端地址代理服务器有可能真实

为何选择我们?
  • 客未惬心,决不索费
    免费真机测试,不满意不收取任何费用!

    " 我们承诺免费真机测试,让您在购买前充分体验产品性能。一旦您对产品满意,我们才会开始提供专业的定制服务。我们的团队由行业专家组成,为您提供卓越的技术支持。同时,我们承诺无后顾之忧,让您购买无忧。选择我们,您将获得最优质的产品和服务!"

  • 无需等待,快速交付!
    真机现货,免一切繁文缛节速布诸业!

    "在正常工作流程下,我们承诺在一小时内快速完成服务器部署,无需繁琐手续,简单高效。我们专注于让您的项目正常运作,摆脱繁文缛节的束缚,为您提供迅速可靠的服务。您只需关注核心业务,其余琐事交给我们搞定。我们的团队经验丰富,配备先进技术,确保您的服务器迅速投入正常运转,省却不必要的等待时间。选择我们,让部署变得更加轻松,享受高效便捷的服务体验"

  • 品牌机器,稳如磐石!
    依托主流品牌机器,为您构建业务的坚实基石,确保稳定可靠的运行,助您信心十足地前行。

    "业务选择的是主流品牌机器,打造坚实可靠的服务器基石。在数不尽的选择中,我们信赖 Dell、Supermicro、Huawei 和 Oracle,这些领先品牌以其卓越的性能和可靠性成为业界翘楚;选择主流品牌,就是选择稳定、高效、可信赖的服务器方案。我们将为您构建一个坚不可摧的技术堡垒,确保您的业务始终稳如磐石"

  • 支持定制,海量资源!
    确保最优性能。携手全球120多机房,为您打造独一无二、完美贴合需求的定制解决方案

    "无论规模大小,我们支持定制,拥有海量资源;无论是配置还是系统,我们竭尽全力满足不同业务需求;无论何时何地,为您提供广泛选择,确保项目具备最优性能和灵活的定制选项。联手全球120多个机房让我们携手,为您打造独一无二、完美贴合需求的定制化解决方案"

  • 强大团队,技术保障!
    专属客户经理解决服务器问题,24小时秒响应确保优质服务!

    "强大团队,技术保障!每位客户均配有1-2位专属客户经理,致力解决一切服务器相关问题。我们郑重承诺快速响应,24小时客服团队随时为您解答。通过与技术团队的迅速简短沟通,确保迅速解决各类问题。您的满意是我们最高追求,我们全力确保您在使用过程中享受到最卓越的服务体验"

帮助中心

本月推出了一系列特价香港服务器
本月推出了一系列特价香港服务...

亲爱的用户,我们很高兴地宣布,秀米云本月推出了一系列特价香港服务器。以下是我们的优惠详情:香港E3-1230系列,不限制...

免费免实名,香港站群服务器优势哪些?
免费免实名,香港站群服务器优...

香港站群服务器以其地理位置优势、完善网络基础设施、严格安全措施、专业服务及灵活扩展性而备受推崇。其价格优势、特色线路和先...

香港服务器访问速度会比内地的慢多少?
香港服务器访问速度会比内地的...

香港服务器的访问速度受多种因素影响,其中距离、线路、带宽和负载是关键因素。香港地理位置接近内地,平均延迟在60-70毫秒...

  • 24H在线
  • Tg纸飞机