`

通过request取IP

 
阅读更多

转自:
http://blog.sina.com.cn/s/blog_7fa2bcf50100x8ql.html

根据request获取IP的方式:
public static String getIpAddr(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.getRemoteAddr();
        }
        return ip;
    }
注意:当访问地址为localhost时 地址格式为 0:0:0:0:0:0:1
访问地址写为127.0.0.1时正常
分享到:
评论

相关推荐

    ASP如何获取真实IP地址

    大家都知道,在ASP中可以使用Request.ServerVariables("REMOTE_ADDR")来取得客户端的IP地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的IP地址,而不是真正的客户端IP地址。要想透过代理服务器...

    C# IP定位代码实例

    //代理中的内容 非IP,取IP } } string IpAddress = (HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != null && HttpContext.Current.Request.ServerVariables[...

    ASP获取ip地址_服务器时间等

    在ASP中使用 Request.ServerVariables("REMOTE_ADDR") 来取得客户端的IP地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的IP地址,而不是真正的客户端IP地址。要想透过代理服务器取得客户端的...

    获取客户端IP

    在很多应用下都可能有需要将用户的真实IP记录下来,这时就要获得用户的真实IP地址,在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等...

    Java中使用HttpRequest获取用户真实IP地址

    主要介绍了Java中使用HttpRequest获取用户真实IP地址,使用本文方法可以避免Apache、Squid、nginx等反向代理软件导致的非真实IP地址,需要的朋友可以参考下

    ASP.NET获取真正的客户端IP地址的6种方法

    在ASP中使用 Request.ServerVariables(“REMOTE_ADDR”) 来取得客户端的IP地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的IP地址,而不是真正的客户端IP地址。 要想透过代理服务器取得客户端的...

    Javascript – HTML的request类

    做中英转换的时候,要准确的获取参数并取出,所以做了一个简单的html中用js获取当取地址栏的一个Object。 里面有三个方法: 1、request.QueryString(“参数”)//获取指定参数,返回字符串; 2、request.QueryStrings...

    Java获取客户端的真实IP地址

    这种情况下,直接用request.getRemoteAddr()是无法取到真正的客户IP的。  如果使用了反向代理软件,将http://192.168.1.110:2046/的URL反向代理为http://www.javapeixun.com.cn/的URL时,用re

    JavaScript中${pageContext.request.contextPath}取值问题及解决方案

    在JSP里取${pageContext.request.contextPath},方式一是可以正常取到,但方式二却取到的是 字符“${pageContext.request.contextPath}” 方式一: [removed] var t = "${pageContext.request.contextPath}"; ...

    AMR在ip域中的编码

    以下三种场景分别为1IP域的终端进行会话、2非IP域终端通过网关和3IP域终端会话以及非IP域终端之间的通信场景,各个场景的特点见协议描述。 AMR和AMR-WB净荷格式 二者格式区别,a.帧类型;b.前者的采样频率为8...

    asp HTTP_X_FORWARDED_FOR和REMOTE_ADDR

    在ASP中使用 Request.ServerVariables(“REMOTE_ADDR”) 来取得客户端的 IP 地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的IP地址,而不是真正的客户端 IP 地址。要想透过代理服务器取得...

    DHCP客户端测试软件(dhcp for xcap)

    取时溢出. 譬如有1、2、3三行数据, 这里只选中了第三行, 限制为1, 那么如果点击发送, 则clients = [(row, [client1]], 此时clients[2] 就会溢出. 所以这里讲clients修改为字典, 即通过row来索引客户端client = {3: ...

    EHTTP - 易语言网站开发框架 - V1.2.1-易语言

    ⑧取远程IP地址【客户地址】 3、Response【响应类】 ①发送文件【发送一个文件】 ②发送文本【发送文件改一改就好啦】 ③置Cookie【响应给浏览器的Cookie】 ④置响应头【譬如:Content-Type:text/html】 ⑤置...

    异步 HttpContext.Current实现取值的方法(解决异步Application,Session,Cache…等失效的问题)

    回答的也多数都是:引用System.Web,不要用HttpContext.Current.Application应该用System.Web.HttpContext.Current.Application,后来在网上看到一篇关于System.Runtime.Remoting.Messaging.CallContext这个类的详细...

    cgi技术---CGI 程序设计.mht

    REQUEST_METHOD POST 或 GET, 取决于你的表单是怎样递交的. HTTP_ACCEPT 浏览器能直接接收的Content-types, 可以有HTTP Accept header定义. HTTP_USER_AGENT 递交表单的浏览器的名称、版本 和其他平台性的附加...

    EL表达式 (详解)

    ${pageContext.request.remoteAddr } 取得用户的IP 地址 ${pageContext.session.new} 判断session 是否为新的 ${pageContext.session.id} 取得session 的ID ${pageContext.servletContext.serverInfo} ...

    node-curl-cmd:从 http 请求对象生成 curl 命令行参数列表

    var options = { hostname : 'ifconfig.me' , port : 80 , path : '/ip' , method : 'GET'} ;console . log ( '=> %s' , curl . cmd ( options ) ) ;http . request ( options , function ( res ) { console...

    vlan学习笔记

    <br> 基于子网的VLAN,则是通过所连计算机的IP地址,来决定端口所属VLAN的。不像基于MAC地址的VLAN,即使计算机因为交换了网卡或是其他原因导致MAC地址改变,只要它的IP地址不变,就仍可以加入原先设定的VLAN。...

Global site tag (gtag.js) - Google Analytics