文档章节

javaweb获取客户端IP终极加强版

别寒
 别寒
发布于 2016/06/12 10:15
字数 208
阅读 106
收藏 8

javaweb获取客户端ip的时候,少数时候会获取不到,具体情况也不是很清楚,大概是手机客户端有些安装了代理软件之类的,出现这种状况的时候,使用常见的获取ip方式就有些不够用了,下面收集了7个方式来获取客户端ip,经过服务器3天的验证,没有出现获取不到客户端ip的情况。

	/**
	 * 获取客户端IP
	 * */
	public String getIpAddr() {
		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.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.getHeader("X-Real-IP");
		}
		if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
			ip = request.getRemoteAddr();
		}
		
		return ip;
    }

© 著作权归作者所有

下一篇: js提示框
别寒
粉丝 30
博文 273
码字总数 155300
作品 0
永州
程序员
私信 提问
用socket怎么获得javaWeb返回的json?

javaweb使用了struts2 返回json字符串,其中一种客户端使用socket访问,怎么获取返回的json,我打印出了返回的流,只有 http版本号 和状态码 服务端发送json 的方式:...

颖辉小居
2015/12/15
608
9
Java学习历程

一:入门阶段 学习目标:Java程序员 1: 熟悉jdk,jvm,eclipse,安装于配置jdk 2:熟悉并掌握java的基础语法,类,抽象类,接口,内部类等概念 3: java核心编程,如输入输出流,多线程,集合...

余丰文zmixed
2016/07/21
109
0
javaweb获取客户端真实ip

在安全性要求较高的web项目中,我们经常有这样的需求: 黑名单:禁止指定ip访问。 白名单:允许指定ip访问。 根据ip追踪恶意***系统者。 在java中我们通常可以这样获取客户端ip地址: reques...

傲世孤尘
2018/06/29
0
0
RESTFul架构权限设计

1 用户权限认证后获取服务端的token,将token存入客户端cookie中。 2 将cookie放入客户端请求页面的头部信息 X-CSRF-TOKEN中 示例代码 <!doctype html><html lang="en"><head> </head><body......

lilugirl
2016/04/19
137
1
JavaWeb网站性能优化的相关技术

一、提高服务器并发处理能力 我们总是希望一台服务器在单位时间内能处理的请求越多越好,这也成了web服务器的能力高低的关键所在。服务器之所以可以同时处理多个请求,在于操作系统通过多执行...

晨猫
2018/04/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

IT兄弟连 Java语法教程 编写Java源代码

现在我们来一步一步的编写第一个Java程序,鼎鼎大名的“HelloWorld”。 编写Java源代码 编写Java源代码可以使用任何无格式的文本编辑器,在Windows操作系统上可以使用记事本、Edit Plus等程序...

老码农的一亩三分地
28分钟前
2
0
JavaScript箭头函数中的this详解

前言 箭头函数极大地简化了this的取值规则。 普通函数与箭头函数 普通函数指的是用function定义的函数: var hello = function () {console.log("Hello, Fundebug!");} 箭头函数指的是用...

开元中国2015
39分钟前
2
0
ETL测试工具简介

ETL测试 ETL测试过程与其他测试过程类似,包括一些阶段。 确定业务需求 测试计划 设计测试用例和测试数据 测试执行和错误报告 总结报告 测试结束 ETL测试的类型 生产验证测试: 也称为表平衡...

python测试开发人工智能安全
51分钟前
3
0
OSChina 周四乱弹 —— 不能空腹吃早餐

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @for_ :#今日歌曲推荐# 很好听的钢琴曲,节奏简单,有一点伤感。分享Fabrizio Paterlini的单曲《Veloma》: 《Veloma》- Fabrizio Paterlini ...

小小编辑
今天
1K
17
探讨android更新UI的几种方法

作为IT新手,总以为只要有时间,有精力,什么东西都能做出来。这种念头我也有过,但很快就熄灭了,因为现实是残酷的,就算一开始的时间和精力非常充足,也会随着项目的推进而逐步消磨殆尽。我...

天王盖地虎626
今天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部