从JSP中得到访问客户端的真实IP?(苦恼很久)
现在手头开发一个网站,有这么一个功能,就是根据访问者的IP自动显示访问者所在的区域;
现在遇到了一问题,我得到客户端IP的代码如下:
该代码得到的结果如下:
1.如果应用发布到局域网,在局域网内访问,得到的是我局域网的IP,如: 192.168.0.2
2.如果我将应用发布到独立IP的外网服务器上面,在任何地方访问,得到的IP总是 192.168.198.1,这一类局域网的IP段
我现在就是想在第二种情况下能够得到访问者的外网ip,请问各位有什么高招?
现在遇到了一问题,我得到客户端IP的代码如下:
public String getIpAddr(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)
|| "null".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)
|| "null".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)
|| "null".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
return ip;
}
该代码得到的结果如下:
1.如果应用发布到局域网,在局域网内访问,得到的是我局域网的IP,如: 192.168.0.2
2.如果我将应用发布到独立IP的外网服务器上面,在任何地方访问,得到的IP总是 192.168.198.1,这一类局域网的IP段
我现在就是想在第二种情况下能够得到访问者的外网ip,请问各位有什么高招?
...全文
相关推荐
Java获取客户端真实IP地址
Java获取客户端真实IP地址
JSP如何获取客户端真实IP地址
在JSP中,获取客户端IP的方法为:request.getRemoteAddr()。这种方法在大部分情况下都是有效的,但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。 如果使用了反向代理软件,将http://192.168.1.110:3306/ 的URL反向代理为http://www.8888.com/ 的URL时,用request.getRemoteAddr()方法获取的IP地址是:127.0.0.1 或 192.168.1.110,而并不是客户端的真实IP。 经过代理以后,由于在客户端和服务之间增加了中间层,因此服务器无法直接拿到客户端的IP,服务器
java获得客户端真实的ip地址
我们知道在jsp里,获取网页客户端的ip地址的方法是:request.getremoteaddr(),这种方法在大部分情况下都是有效的。但是在通过了apache,squid等反向代理软件就不能获取到客户端的真实ip地址了。如果使用了反向代理软件,用request.getremoteaddr()方法获取的ip地址是:127.0.0.1或192.168.1.110,而并不是客户端的真实ip。
jsp获取浏览者真实IP地址方法
jsp 获取 本地ip、mac地址 的技术
获取访问者真实的IP地址
获取访问者真实的IP地址


Web 开发
