public class NetworkUtil {private static final Logger logger = LoggerFactory.getLogger(NetworkUtil.class);/*** 获取请求主机IP地址,如果通过代理进来,则透过防火墙获取真实IP地址;*/public static String getIpAddress(HttpServletRequest request)  {// 获取请求主机IP地址,如果通过代理进来,则透过防火墙获取真实IP地址String ip = request.getHeader("X-Forwarded-For");logger.info("X-Forwarded-For - String ip=" + ip);if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("Proxy-Client-IP");logger.info("Proxy-Client-IP - String ip=" + ip);}if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("WL-Proxy-Client-IP");logger.info("WL-Proxy-Client-IP - String ip=" + ip);}if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("HTTP_CLIENT_IP");logger.info("HTTP_CLIENT_IP - String ip=" + ip);}if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("HTTP_X_FORWARDED_FOR");logger.info("HTTP_X_FORWARDED_FOR - String ip=" + ip);}if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getRemoteAddr();logger.info("getRemoteAddr - String ip=" + ip);}} else if (ip.length() > 15) {String[] ips = ip.split(",");for (int index = 0; index < ips.length; index++) {String strIp = (String) ips[index];if (!("unknown".equalsIgnoreCase(strIp))) {ip = strIp;break;}}}return ip;}
}

Java —— 获取用户真实IP工具类相关推荐

  1. java获取用户真实IP地址

    /*** 获取用户真实IP地址,不使用request.getRemoteAddr();的原因是有可能用户使用了代理软件方式避免真实IP地址.* 可是,如果通过了多级反向代理的话,X-Forwarded ...

  2. java获取真实ip工具类

    场景 有的时候我们需要获取客户端的真实ip,用来实现ip白名单,和黑名单的配置! ip工具类如下 package com.meeno.framework.utils;import javax.serv ...

  3. nginx反向代理获取用户真实ip

    nginx做反向代理时,默认的配置后端获取到的ip都是来自于nginx,如何转发用户的真实ip到后端程序呢?如是是java后端,用request.getRemoteAddr();获取到的是nginx的 ...

  4. JAVA:获取用户访问ip地址

    获取用户真实IP地址:不使用request.getRemoteAddr();的原因是有可能用户使用了代理软件方式避免真实IP地址: 可是,如果通过了多级反向代理的话,X-Forwarded-For的值 ...

  5. PHP获取用户真实IP地址

    PHP获取用户真实IP地址 <?phpfunction getRealIpAddr() { if (!empty($_SERVER['HTTP_CLIENT_IP'])) { $ip=$_SER ...

  6. php获取客户端ip端口,Phpwind获取用户真实IP

    Phpwind获取用户真实IP 使用nat123端口映射后,可能会遇到phpwind网站无法获取用户真实IP的情况,对应解决方法有下. phpwind8.5的方法: 修改 /require/commo ...

  7. 使用nginx代理的情况下获取用户真实IP

    ##1.背景知识 1.1. 前提知识点: 还有nginx中的几个变量: remote_addr 代表客户端的IP,但它的值不是由客户端提供的,而是服务端根据客户端的ip指定的,当你的浏览器访问某个网站 ...

  8. nginx 如何配置来获取用户真实IP

    ##1.背景知识 1.1. 前提知识点: 还有nginx中的几个变量: remote_addr 代表客户端的IP,但它的值不是由客户端提供的,而是服务端根据客户端的ip指定的,当你的浏览器访问某个网站 ...

  9. QQ空间迁移_【群晖NAS+FRP_并获取用户真实IP 支持群辉6.0和群辉7.0】

    群晖NAS+FRP 并获取用户真实IP 2020-11-12 13:57:54 事情的起因是这样的, 我的NAS没有公网IP,通过FRP端口映射到云主机对外提供访问,但是互联网不怀好意的人太多了,经常 ...

最新文章

  1. 学习篇之软件测试——初
  2. Maven笔记(2)-- 常用命令和标准的Maven项目结构
  3. http://blog.chinaunix.net/uid-25082381-id-3242162.html
  4. 「浏览器插件」非常好用的JSON-View
  5. C++预处理指令#define,#if,#endif等
  6. mysql存储过程实va_mysql-存储过程(二)-逻辑判断语句
  7. 如何在Oracle数据库内格式化SQL或PL/SQL ?
  8. COOKIE和SESSION之间的区别以及用法
  9. CF989C A Mist of Florescence
  10. mate10鸿蒙测试版,华为鸿蒙 2.0 开发者公测版 Bata 3 更新:增加三个鸿蒙应用
  11. Adyen海外支付 - 直付
  12. MATLAB :xlim 、 ylim 、zlim简介
  13. 失败并不可怕,可怕的是害怕失败
  14. net stop mysql 服务名无效
  15. 怎么在Windows电脑更新 DirectX ?
  16. 办公室业务杂志办公室业务杂志社办公室业务编辑部2022年第18期目录
  17. MyEclipse weblogic Deploy Location项目名称不正确解决方案
  18. rufus-scheduler 定时任务示例
  19. 联想开机启动项按哪个_联想电脑怎么在BIOS中设置从U盘或光盘启动
  20. 驾照 科目二评判标准

热门文章

  1. 开发工程师的人生是这样的
  2. appinventor飞机大战案例_第一个AppInventor 开发案例 Hello Kitty(下)
  3. linux 硬盘使用监控,zabbix3.2监控linux磁盘使用空间
  4. Simulink中的虚拟和非虚拟子系统
  5. 计算机开机显示器不亮,电脑显示屏不亮但是主机已开机怎么办 电脑显示屏不亮解决方法【图文】...
  6. 申宝策略-行业与概念板块跌多涨少
  7. 整套智能家居系统解决方案
  8. Qualcomm QTV Player
  9. 5G新型网络架构关键技术 — 无线mesh与动态自组网络和无线资源调度与共享
  10. 修改yolov5的输入图像尺寸为指定尺寸