/**
* 取得客户端IP地址
*
* 假如通过了多级反向代理的话,X-Forwarded-For的值并不止一个,而是一串ip值, 究竟哪个才是真正的用户端的真实IP?
* 答案是取X-Forwarded-For中第一个非unknown的有效IP字符串。 如:X-Forwarded-
* For:192.168.1.110, 192.168.1.120, 192.168.1.130, 192.168.1.100, 用户真实IP为:
* 192.168.1.110
*
* @param request
* @return String
* @author huohezhang
* @time 2010-9-21
*/
public static String getIpAddr(HttpServletRequest request) {
String ip = request.getHeader("X-Forwarded-For");
log.debug("Get ip address from header 'X-Forwarded-For' is :"+ip);
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
log.debug("Get ip address from header 'Proxy-Client-IP' is :"+ip);
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
log.debug("Get ip address from header 'WL-Proxy-Client-IP' is :"+ip);
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("HTTP_CLIENT_IP");
log.debug("Get ip address from header 'HTTP_CLIENT_IP' is :"+ip);
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("HTTP_X_FORWARDED_FOR");
log.debug("Get ip address from header 'HTTP_X_FORWARDED_FOR' is :"+ip);
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
log.debug("Get ip address from RemoteAddr() is :"+ip);
}
if(ip!=null){
if(ip.contains(",")){
ip = ip.substring(0,ip.indexOf(","));
}
if(ip.length()>23){
ip = ip.substring(0,23);
}
}
log.debug("Get ip address is :"+ip);
return ip;
}
分享到:
相关推荐
IpUtil工具类--通过request获取IP,通过IP获取地址(需要联网,调用淘宝的IP库)。使用场景:在网站开发记录用户增删改查日志的时候,往往需要记录操作人的IP地址,来准确的生成操作日志记录等
不通过request 方式和套字节方式获取IP地址.
获取用户请求IP地址 根据IP地址获取mac地址
通过访问请求的request获取网络IP,浏览器,操作系统等信息
java获取IP地址和MAC地址。 /** * 通过HttpServletRequest返回IP地址 * @param request HttpServletRequest * @return ip String * @throws Exception */ public String getIpAddr(HttpServletRequest ...
获取客户端ip地址( 这个必须从客户端传到后台): jsp页面下,很简单,request.getRemoteAddr() ; 因为系统的VIew层是用JSF来实现的,因此页面上没法直接获得类似request,在bean里做了个强制转换java 获取客户端ip ...
超全面javaweb教程28天第10天_10_request之获取客户端IP地址、获取请求方式、判断客户端浏览器类型和版本
获取客户端IP地址、浏览器版本和操作系统信息在JSP中的实现方法 在JSP中,获取客户端的IP地址、浏览器版本和操作系统信息是非常重要的。通过使用HttpServletRequest对象,我们可以获取到客户端的相关信息。 获取...
获取请求接口的真实ip 地址工具类。适合所有Java开发人员。针对接口的ip 地址的获取。
1.通过Servlet的HttpRequest对象获取Ip地址。 2.通过Reactive的ServerHttpRequest对象获取Ip地址。
使用 Request.UserHostAddress 属性获取当前客户端的 IP 地址,并将其设置到 ltl_IP 文本框中。 知识点: 1. JavaScript 中的 Date 对象可以用来获取当前时间。 2. 使用 getHours、getMinutes、getSeconds 等方法...
java获取IP地址的工具类,使用时传入HttpServletRequest request类型的参数即可。使用例子 public static void logPageError(HttpServletRequest request){IpUtils.getIpAddr(request))}
例如,Request.ServerVariables["REMOTE_ADDR"] 可以获取客户端的 IP 地址。 七、结论 在 C# 中,获取请求参数可以使用 Request.Params、Request、Request.QueryString、Request.Form、Request.Cookies 和 Request...
在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了
C# winform 获取 本机 IP C# winform 获取 本机 IP
获取在线用户IP的PHP代码.zip
主要介绍了Java根据Request获取客户端IP的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
在Controller类获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。如果使用了反向代理软件,用...
大家都知道,在ASP中可以使用Request.ServerVariables("REMOTE_ADDR")来取得客户端的IP地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的IP地址,而不是真正的客户端IP地址。要想透过代理服务器...
在开发中我们经常需要获取用户IP地址,通过地址来实现一些功能,下面这篇文章主要给大家介绍了关于Java利用Request请求获取IP地址的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小...