`

java获取请求客户端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;

	
	}

    
         from  http://blog.sina.com.cn/s/blog_5198c7370100m5cu.html 
          可是,如果通过了多级反向代理的话,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

分享到:
评论

相关推荐

    java 获取客户端ip mac地址

    获取客户端ip地址( 这个必须从客户端传到后台): jsp页面下,很简单,request....因为系统的VIew层是用JSF来实现的,因此页面上没法直接获得类似request,在bean里做了个强制转换java 获取客户端ip mac地址

    Java获取客户端真实IP地址

    Java获取客户端真实IP地址

    Java获取客户端IP

     原因:由于在客户端和服务之间增加了中间代理,因此服务器无法直接拿到客户端的IP,服务器端应用也无法直接通过转发请求的地址返回给客户端。  现在图示代理上网和IP的关系:  第一种情况:不通过代理上网,...

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

    在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件就不能...用以跟踪原有的客户端IP地址和原来客户端请求的服务器地址。

    IP地址HTTP请求工具类

    获取本地IP地址,获取本地Host名称,获取Linux下的IP地址,获取用户真实IP地址,get/post请求 相应的工具类

    java中通过request获取IP以及MAC地址.java

    获取用户请求IP地址 根据IP地址获取mac地址

    IpUtil工具类--通过request获取IP,通过IP获取地址

    IpUtil工具类--通过request获取IP,通过IP获取地址(需要联网,调用淘宝的IP库)。使用场景:在网站开发记录用户增删改查日志的时候,往往需要记录操作人的IP地址,来准确的生成操作日志记录等

    UserAgentUtils-1.20.jar 【用于通过从request请求中的User-Agent中获取客户端浏览器类型、客户端操作系统、ip地址等信息】

    UserAgentUtils-1.20.jar 【用于通过从request请求中的User-Agent中获取客户端浏览器类型、客户端操作系统、客户端ip地址等信息的jar插件】 ,非常好用,导入到项目的lib包中即可使用。 maven引用地址为: <!-- ...

    java springboot tcp通讯 demo

    java springboot tcp通讯 demo ;

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

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

    动态主机配置协议 DHCP 是 RFC 1541定义的标准协议,该协议允许服务器向客户端动态分配IP地址和配置信息

    动态主机配置协议 DHCP(Dynamic Host Configuration Protocol,动态主机配置协议) 是 RFC ...DHCP服务器:用于管理所有的IP网络信息,并处理客户端的DHCP请求,为接入的客户端分配IP地址、子网掩码、默认网关等内容。

    毕业设计:基于DES加密的即时通信聊天系统(java实现)

    serverThread.java: 服务器辅助线程,避免卡死主线程,负责客户端各种请求的处理和数据库操作 alert.java: 用于提示用户操作信息 repaint.java: 重绘达到实时效果,并解决界面最小化再打开后空白界面 客户端外部文件...

    java源码包---java 源码 大量 实例

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    Android应用源码正方教务通用安卓客户端项目

    如果您的学校是用的这套系统可以把SetNet.java文件和Login.java文件中的IP更改成您的学校的IP或域名,就可以实现在手机上查成绩查课程表了。项目涉及的东西不多,数据获取是通过模拟请求分析返回网页内容获取数据的...

    JAVA基于局域网的聊天室系统-包括客户端,服务端的(源代码+论文).zip

    A客户端向B客户端请求语音视频聊天是通过B客户端的用户名来获得B客户端的IP地址,并向B客户端发送语音视频聊天请求,当B客户端接受后捕获视频,并进行压缩传输到A客户端解压并进行显示,在B客户端接受视频的同时,A...

    Mockability-Clients-Java:用Java编写的可模拟性客户端

    通用功能尽管所有Java客户端使用不同的数据结构来表示请求和响应,但它们具有下面给出的功能。建造通过将Mockability服务器的基本URL传递给其构造函数来创建客户端对象。response = clear(method, uri) 使用指定的...

    JAVA上百实例源码以及开源项目

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    JAVA上百实例源码以及开源项目源代码

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    WEB15-request.rar

    案例二、完成登录错误信息的回显。 4.通过request获得请求行 获得客户端的请求方式:String getMethod() 获得请求的资源: ...request.getRemoteAddr() --- 获得访问的客户端IP地址 通过request获得请求头

    JAVA程序员面试题

    getRemoteAddr():获取客户端的IP地址 getRemoteHost():获取客户端的名字 getSession([Boolean create]):返回和请求相关Session getServerName():获取服务器的名字 getServletPath():获取客户端所请求的脚本文件...

Global site tag (gtag.js) - Google Analytics