`
tangwenchao86
  • 浏览: 374259 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

获取客户端ip代码

阅读更多
我们知道,获取网页客户端的ip地址的方法是:request.getremoteaddr(),这种方法在大部分情况下都是有效的。但是在通过了apache,squid等反向代理软件就不能获取到客户端的真实ip地址了。如果使用了反向代理软件,用request.getremoteaddr()方法获取的ip地址是:127.0.0.1或192.168.1.110,而并不是客户端的真实ip。
  经过代理以后,由于在客户端和服务之间增加了中间层,因此服务器无法直接拿到客户端的 ip,服务器端应用也无法直接通过转发请求的地址返回给客户端。但是在转发请求的http头信息中,增加了x-forwarded-for信息。用以跟踪原有的客户端ip地址和原来客户端请求的服务器地址。所以将获取客户端ip的方法总结如下:
private String getClientIP(HttpServletRequest request) {
String ip = "";
try {
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.getRemoteAddr();
}
} catch (RuntimeException e) {
e.printStackTrace();
}
return ip;
}
分享到:
评论

相关推荐

    以IP来获取客户端电脑名称(一句代码实现)

    公司的域环境内,要求获取客户端的电脑名称,其实程序原开始,只是要求 获取客户端IP地址 后来演变成要求显示客户端的电脑名称。作为开发者,只有不停地实现客户的要求。 其实既然IP获取到了,那可以轻易以IP来获取...

    .net获取客户端主机名和ip地址

    .net 通过后台代码获取客户端的主机ip地址和客户端主机名。

    获取客户端真实 IP

    java代码实现 服务器端获取客户端的真实IP(亲测可用)

    JSP获取客户端IP地址浏览器版本操作系统.pdf

    JSP获取客户端IP地址浏览器版本操作系统.pdf

    JS获取客户端IP地址、MAC和主机名的7个方法汇总

    今天在搞JS(javascript)获取客户端IP的小程序,上网搜了下,...获取客户端IP代码: 代码如下: <HTML> <HEAD> <TITLE>GetLocalIP</TITLE> </HEAD> <BODY> 获取IP: <script

    asp.ne C# t编写的获取客户端MAC IP的源代码

    用asp.ne C# t编写的获取客户端MAC IP的源代码,可用于对安全级别较高的客户端的安全校验,本机实测。绝对可用,

    c#获取客户端IP地址(考虑代理)

    主要介绍了c#获取客户端IP地址(考虑代理),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    node获取客户端ip功能简单示例

    本文实例讲述了node获取客户端ip功能。分享给大家供大家参考,具体如下: 使用nodejs来获取客户端ip 遇到了一个需求,就是服务端让前端自己获取ip,当时就是各种百度,发现通过node来获取是可以的,但是也是node在...

    thinkphp如何获取客户端IP

    除了thinkphp内置get_client_ip函数外,也可使用下面函数获取客户端IP地址。 $type表示返回类型 0 返回IP地址, 1 返回IPV4地址数字 分享代码如下 function get_client_ip($type = 0) { $type = $type ? 1 : 0; ...

    获取客户端IP

    后台获取客户端的IP地址主要代码

    Java正确获取客户端真实IP方法整理.docx

    在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。 如果使用了反向代理软件,将...

    JS 使用搜狐接口获取客户端IP地址

    NULL 博文链接:https://onestopweb.iteye.com/blog/2263088

    Asp.net获取客户端IP常见代码存在的伪造IP问题探讨

    在网卡随便一搜: Asp.net 客户端IP 可以搜索到很多页面,提供的代码基本都类似于: 代码如下: if (Request.ServerVariables[“HTTP_VIA”] != null) return Request.ServerVariables[“HTTP_X_FORWARDED_FOR”]....

    JSP 获取真实IP地址的代码

    但是在通过了 Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。...用以跟踪原有的客户端IP地址和原来客户端请求的服务器地址。当我们访问index.jsp/时,其实并不是我们浏览器真正访问

    Flex通过JS获取客户端IP和计算机名的实例代码

    主要介绍了Flex通过JS获取客户端IP和计算机名的实例代码,有需要的朋友可以参考一下

    PHP 获取客户端 IP 地址的方法实例代码

    先来了解一个变量的含义: $_SERVER[‘REMOTE_ADDR’]:浏览当前页面的用户计算机的ip地址 ... * 获取客户端IP地址 */ function real_ip() { $ip = $_SERVER['REMOTE_ADDR']; if (isset($_SERVER['HTTP_X_FORWARDE

    ASP.net获取客户端MAC(C#)

    好几天了一直在为这个问题郁闷.今天终于测试通过了.里边只有一个default.aspx和它的代码文件.....net获取客户端的MAC.可以用来做很多事情哦..呵呵!这么辛苦,,,各位就赏点资源分吧.有其他问题可以找我

    java中怎么获取客户端的真实的IP

    提供数种java中如何获取客户端真实IP的方法和代码, 含使用代理服务器情况

    获取客户端网卡MAC地址和IP地址实现JS代码

    在做B/S结构的系统时,我们常常需要获取客户端的一些信息,如IP和MAC,以结合身份验证。要获取服务器端的MAC很容易,但是要获取客户端的MAC的地址确要花费一翻心思,通常的做法是调用Win32API或直接调用nbtstat命令...

Global site tag (gtag.js) - Google Analytics