JavaWeb程序获取客户端IP

原创 2017年01月03日 13:47:48
在JavaWeb中很多时候需要获取客户端IP地址,但是有写人直接就用
request.getRemoteAddr();
获取,但是这种方式获取IP有缺陷,当前端使用的是Nginx等代理的话,获取的IP地址就是127.0.0.1,所以在获取IP时候需要对Nginx等做处理,下面是完整的程序:
package com.utils;

import javax.servlet.http.HttpServletRequest;

public class GetIP {
	/**
	*Auther:呐喊
	*Function:获取客户端IP地址,针对Nginx等反代作处理
	*Date:2016-11-01
	*URL:http://www.htcdc.com
	*/
	public String getIP(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.getHeader("X-Real-IP");
		}
		if(ip==null || ip.length()==0 || "unknown".equalsIgnoreCase(ip)){
			ip=request.getRemoteAddr();
		}
		return ip;
	}
	
	
}


版权声明:版权所有,本文为博主原创文章。转载请注明: 来自呐喊博客http://blog.csdn.net/nahancy。

相关文章推荐

Java Web开发之httpServletRequest获取客户端真实ip

坚持 成长 每日一篇request方法客户端IP: request.getRemoteAddr() 输出:192.168.0.106客户端主机名:request.getRemoteHost()输出:a...

javaWeb项目中获取ip为 0:0:0:0:0:0:0:1

今天使用request.getRemoteAddr()获取IP时,得到了0:0:0:0:0:0:0:1,最后通过查询发现是C:\Windows\System32\drivers\etc\hosts这个...

Web项目中得到访问者的真实ip

Web项目中得到访问者的真实ip

Java获取登录电脑的ip

package com.audaque.util; import java.net.InetAddress; import java.net.UnknownHostException; impor...

JavaWeb中通过从request请求中获取浏览器类型、系统信息、客户端ip等信息

JavaWeb中通过从request请求中获取浏览器、系统信息、终端ip等信息。获得客户端的IP地址 。获得客户端向服务器端传送数据的方法有GET、POST、PUT等类型 。

C++基于TCP/IP简单的客户端、服务器通信程序实例

附原文链接:http://blog.csdn.net/shenjie12345678/article/details/28321969 ...

C++基于TCP/IP简单的客户端、服务器通信程序实例

本篇文章实现了一个基于TCP 的一个非常简单的客户/服务器通信程序实例。该程序中通讯协议使用的是面向连接的TCP协议SOCK_STREAM, 服务器的ip地址为本地地址即: 127.0.0.1,端口...

C++基于TCP/IP简单的客户端、服务器通信程序实例

本篇文章实现了一个基于TCP 的一个非常简单的客户/服务器通信程序实例。该程序中通讯协议使用的是面向连接的TCP协议SOCK_STREAM, 服务器的ip地址为本地地址即: 127.0.0.1,...

基于TCP/IP协议的客户端应用程序

// client.cpp -- 客户端实现文件. #include "stdafx.h" #include #include #pragma comment (lib, "ws2_3...

Linux基于TCP/IP简单的客户端、服务器通信程序实例

TCP服务端、客户端代码
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)