博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
获取请求主机IP地址IPUtil
阅读量:6220 次
发布时间:2019-06-21

本文共 1553 字,大约阅读时间需要 5 分钟。

hot3.png

public class IPUtil {    private static Logger logger = Logger.getLogger(IPUtil.class);    /**     * 获取请求主机IP地址,如果通过代理进来,则透过防火墙获取真实IP地址;     */    public final static String getIpAddress(HttpServletRequest request) throws IOException {        String ip = request.getHeader("X-Forwarded-For");        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {            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.getHeader("HTTP_CLIENT_IP");            }            if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {                ip = request.getHeader("HTTP_X_FORWARDED_FOR");            }            if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {                ip = request.getRemoteAddr();            }        } 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;    }}

转载于:https://my.oschina.net/liangbo/blog/598629

你可能感兴趣的文章
Android Button
查看>>
“死”法不重样,一根数据线如何从“机器伴侣”变身电脑杀手?
查看>>
CountDownLatch详解
查看>>
云时代重新定义主机安全:自动化安全闭环是核心
查看>>
abap选择屏幕工具栏按钮问题
查看>>
【Java】I/O类库
查看>>
WPF 4 Ribbon 开发 之 标签工具栏(Tab Toolbar)
查看>>
传闻 Android Q 将支持手机应用版本回滚
查看>>
Visual Studio Code 1.33 发布
查看>>
jQuery幻灯片播放器插件
查看>>
并发——读写锁初探
查看>>
BAT研发面试36题总结:Spring+Redis+Docker+Dubbo+高并发架构
查看>>
Android Animation(动画)---基础二(LayoutAnimationController)
查看>>
python docx文档转html页面
查看>>
阿里如何做到在线业务百分百容器化
查看>>
死锁查看处理(三)
查看>>
rabbitmq 启动与停止
查看>>
浅谈unicode编码和utf-8编码的关系
查看>>
LinuxOS
查看>>
12月5日云栖精选夜读 | 埋在 MySQL 数据库应用中的17个关键问题!
查看>>