`
dreamoftch
  • 浏览: 492767 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

根据HttpServletRequest取得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.getHeader("Cdn-Src-Ip");
		}
		if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
			ip = request.getRemoteAddr();
		}
		return ip;
	}


如果是要获得本机的IP的话可以通过:

InetAddress.getLocalHost().toString()获得

 

 

public String getClientIP(HttpServletRequest request){
		String ip = request.getHeader("x-real-ip");
		if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
			ip = request.getHeader("x-forwarded-for");
			if(ip != null) {
				ip=ip.split(",")[0].trim();
			}
		}
		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;       
	}

 

分享到:
评论

相关推荐

    java非常强的获取客户端真实IP的两种方法

    ### Java获取客户端真实IP的两种方法详解 ...这两种方法在实际应用中都有其适用场景,可以根据具体需求选择合适的方案。在处理复杂的网络环境时,建议综合运用多种方法,以提高获取客户端真实IP的准确性和稳定性。

    httpservletrequest的jar包

    httpservletrequest、httpsession的jar包,导入资源包。

    httpservletRequest的学习笔记

    1. `getRemoteAddr()`:返回发出请求的客户端的IP地址,这对于跟踪和日志记录非常有用。 2. `getRemoteHost()`:返回客户端的完全限定域名。 3. `getServerName()`和`getServerPort()`:分别返回服务器的名称和端口...

    获取IP地址和MAC地址

    * 通过HttpServletRequest返回IP地址 * @param request HttpServletRequest * @return ip String * @throws Exception */ public String getIpAddr(HttpServletRequest request) throws Exception { ...

    从HttpServletRequest获取各种路径总结

    ### 从HttpServletRequest获取各种路径总结 #### 一、概述 在Java Web开发中,通过`HttpServletRequest`对象可以获取客户端请求的各种信息,包括但不限于路径信息。这些路径信息对于开发者来说至关重要,尤其是在...

    用Java来获取访问者真实的IP地址

    public String getRealIP(HttpServletRequest request) { // 首先尝试从X-Forwarded-For头部获取IP地址 String ip = request.getHeader("X-Forwarded-For"); // 如果X-Forwarded-For为空或者为"unknown",则尝试...

    HttpServletRequest-response方法总结

    HttpServletRequest-response方法总结 HttpServletRequest和HttpServletResponse是Servlet编程中两个最重要的接口,它们提供了对HTTP请求和响应的控制和处理。下面是对HttpServletRequest和HttpServletResponse的...

    HttpServletRequest解析设备类型和浏览器类型

    分析HttpServletRequest 内容 解析出设备来源 手机 电脑 什么种类浏览器 什么系统

    用装饰模式装饰HttpServletRequest对象

    在Servlet框架中,装饰模式能够解决特定问题,例如处理HttpServletRequest对象。 **问题与解决方案** Servlet Filter是一个强大的工具,可以在请求到达Servlet之前或之后进行拦截操作,如用户验证和内容压缩。然而...

    java脚本开发根据客户IP获取IP的具体地理位置信息

    通过上述步骤,你可以在Java应用中实现根据客户端IP获取其地理位置的功能。记住,使用第三方IP数据库时可能需要遵守相关的使用条款和隐私政策。同时,IP定位并不总是准确,尤其在使用公共或代理IP时,可能会返回服务...

    HttpServletRequest和HttpServletResponse的必备包

    Java中,引入javax.servlet.http.HttpServletRequest和javax.servlet.http.HttpServletResponse包的必备jar包:org.apache.commons.httpclient.jar

    java IP地址工具类,java IP地址获取,java获取客户端IP地址

    通常,类会有一个静态方法,比如`getLocalHostIp()`用于获取本地IP,另一个静态方法`getClientIp(HttpServletRequest request)`用于从HTTP请求中获取客户端IP。 为了更好地理解和使用`IpUtils`,我们需要阅读并理解...

    tomcat10升级单个jar里面的jakarta.servlet.http.HttpServletRequest

    入参的HttpServletRequest必须为:import jakarta.servlet.http.HttpServletRequest; 运行cmd,再该目录下执行: 执行步骤:java -jar jakartaee-migration-1.0.1.jar commons-fileupload-1.4.jar commons-...

    获取客户端真实IP(支持代理服务器)

    // 如果远程地址是本机,则根据网卡获取本机真实的IP地址 InetAddress inet = null; try { inet = InetAddress.getLocalHost(); } catch (UnknownHostException e) { e.printStackTrace(); } ip = inet....

    IP工具类,通过传入的request获取ip地址(JAVA)

    在Servlet中,我们通常使用`HttpServletRequest`对象来获取请求的相关信息,包括客户端的IP地址。以下是如何实现这一功能的代码示例: ```java import javax.servlet.http.HttpServletRequest; import javax....

    Java获取客户端真实IP地址

    开发者需要根据具体的网络架构和反向代理的配置,选择合适的策略来实现这一目标。在实践中,结合`X-Forwarded-For`字段的检查以及对多级反向代理的支持,能够有效地解决这一问题,确保应用程序能够正确地识别和响应...

    idea,java获取ip地址

    2. **获取IP地址**:`HttpServletRequest`对象有一个`getRemoteAddr()`方法,它返回客户端的IP地址。然而,如果应用运行在反向代理服务器(如Nginx)后,这个方法可能会返回代理服务器的IP。因此,我们需要检查`X-...

    获得访问者的IP地址

    在Java Servlet中,我们可以使用`HttpServletRequest`接口的`getRemoteAddr()`方法来获取客户端的IP地址。例如: ```java protected void doGet(HttpServletRequest request, HttpServletResponse response) throws...

    JAVAWEB-09:HttpServletRequest对象&会话管理之Cookie

    `HttpServletRequest`对象还提供了其他有用的方法,例如`getLocale()`获取用户浏览器首选的语言,`isSecure()`检查请求是否通过安全协议(如HTTPS)发送,以及`getRemoteAddr()`获取客户端的IP地址等。这些方法为...

    java socket 用户真实IP测试

    格式通常是"client IP, proxy 1 IP, proxy 2 IP",所以我们需要处理这个字符串,获取第一个IP作为真实客户端IP。 ```java if (clientIp.contains(",")) { clientIp = clientIp.split(",")[0].trim(); } ``` 3. **...

Global site tag (gtag.js) - Google Analytics