Java通过HttpServletRequest获取用户IP地址代码实例

IP工具类,通过传入的request获取ip地址(JAVA) 1.通过Servlet的HttpRequest对象获取Ip地址。 2.通过Reactive的ServerHttpRequest对象获取Ip地址。 立即下载

 

前言

不知道多久以前的一个需求谈起,需要根据用户的的不同需求(收集用户的行为、动作等等)进行定制的推送相关服务,但是如何标识每一个服务呢。。。在这过程中列举了不知道多少个解决方案,但是最后选择通过用户IP进行标识,当然其中还进行了其它的一些逻辑处理的,在这儿只谈如何使用Java语言通过HttpServletRequest获取用户IP地址,可以拿来即用哦。

分段代码实例

1、获取用户真实的IP地址,代码段实例如下:

	/**
	 * 
	 * @author HuaZai
	 * @contact who.seek.me@java98k.vip
	 * @title getUserIP
	 *        <ul>
	 * @description 获取用户真实的IP地址
	 *              </ul>
	 * @createdTime 2017年12月30日 下午6:42:17
	 * @param request
	 * @return String
	 *
	 * @version : V1.0.0
	 */
	public static String getUserIP(HttpServletRequest request)
	{
		// 优先取 X-Real-IP
		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.length() == 0 || "unknown".equalsIgnoreCase(ip))
		{
			ip = request.getRemoteAddr();
			if ("0:0:0:0:0:0:0:1".equals(ip))
			{
				ip = ERROR_IP;
			}
		}
		if ("unknown".equalsIgnoreCase(ip))
		{
			ip = ERROR_IP;
			return ip;
		}
		int index = ip.indexOf(',');
		if (index >= 0)
		{
			ip = ip.substring(0, index);
		}

		return ip;
	}

 

2、获取服务器IP地址,代码段实例如下:

	/**
	 * 
	 * @author HuaZai
	 * @contact who.seek.me@java98k.vip
	 * @title getServerIP
	 *        <ul>
	 * @description 获取服务器IP地址
	 *              </ul>
	 * @createdTime 2017年12月30日 下午7:44:16
	 * @return String
	 *
	 * @version : V1.0.0
	 */
	public static String getServerIP()
	{
		InetAddress inetAddress;
		try
		{
			inetAddress = InetAddress.getLocalHost();
			String hostAddress = inetAddress.getHostAddress();
			return hostAddress;
		} catch (UnknownHostException e)
		{
			e.printStackTrace();
		}
		return ERROR_IP;
	}

 

4、获取远程IP地址,代码段实例如下:

	/**
	 * 
	 * @author HuaZai
	 * @contact who.seek.me@java98k.vip
	 * @title getRemoteIp
	 *        <ul>
	 * @description 获取远程IP地址
	 *              </ul>
	 * @createdTime 2017年12月30日 下午6:39:22
	 * @param request
	 * @return String
	 *
	 * @version : V1.0.0
	 */
	public static String getRemoteIp(HttpServletRequest request)
	{
		String ip = request.getHeader("x-real-ip");
		if (ip == null)
		{
			ip = request.getRemoteAddr();
		}
		// 过滤反向代理的IP
		String[] stemps = ip.split(",");
		if (stemps != null && stemps.length >= 1)
		{
			// 得到第一个IP,即客户端真实IP
			ip = stemps[0];
		}

		ip = ip.trim();
		if (ip.length() > 23)
		{
			ip = ip.substring(0, 23);
		}

		return ip;
	}

 

4、获取末尾IP地址段,代码段实例如下:

	/**
	 * 
	 * @author HuaZai
	 * @contact who.seek.me@java98k.vip
	 * @title getLastIpSegment
	 *        <ul>
	 * @description 获取末尾IP地址段,{@linkplain IP地址简介}
	 *              </ul>
	 * @createdTime 2017年12月30日 下午6:44:09
	 * @param request
	 * @return String
	 *
	 * @version : V1.0.0
	 */
	public static String getLastIpSegment(HttpServletRequest request)
	{
		// 获取用户真实的IP地址
		String ip = getUserIP(request);
		if (ip != null)
		{
			ip = ip.substring(ip.lastIndexOf('.') + 1);
		} else
		{
			ip = "0";
		}
		return ip;
	}

 5、获取服务器的会后一个地址段,代码段实例如下:

	/**
	 * 
	 * @author HuaZai
	 * @contact who.seek.me@java98k.vip
	 * @title getLastServerIpSegment
	 *        <ul>
	 * @description 获取服务器的会后一个地址段
	 *              </ul>
	 * @createdTime 2017年12月30日 下午7:44:21
	 * @return String
	 *
	 * @version : V1.0.0
	 */
	public static String getLastServerIpSegment()
	{
		String ip = getServerIP();
		if (ip != null)
		{
			ip = ip.substring(ip.lastIndexOf('.') + 1);
		} else
		{
			ip = "0";
		}
		return ip;
	}

 

6、 验证IP地址是否符合规则,通过正则表达实现,代码段实例如下:

	/**
	 * 
	 * @author HuaZai
	 * @contact who.seek.me@java98k.vip
	 * @title isValidIP
	 *        <ul>
	 * @description 验证IP地址是否符合规则
	 *              </ul>
	 * @createdTime 2017年12月30日 下午6:49:21
	 * @param ip
	 * @return boolean
	 *
	 * @version : V1.0.0
	 */
	public static boolean isValidIP(String ip)
	{
		if (StringUtils.isEmpty(ip))
		{
			return false;
		}
		Matcher matcher = pattern.matcher(ip);
		boolean isValid = matcher.matches();
		return isValid;
	}

 

7、获取IP地址,代码段实例如下:

	/**
	 * 
	 * @author HuaZai
	 * @contact who.seek.me@java98k.vip
	 * @title getIpAddress
	 *        <ul>
	 * @description
	 *              <li>获取IP地址
	 *              <li><strong>注意:</strong>IP地址经过多次反向代理后会有多个IP值,
	 *              <li>其中第一个IP才是真实IP,所以不能通过request.getRemoteAddr()获取IP地址,
	 *              <li>如果使用了多级反向代理的话,X-Forwarded-For的值并不止一个,而是一串IP地址,
	 *              <li>X-Forwarded-For中第一个非unknown的有效IP才是用户真实IP地址。
	 *              </ul>
	 * @createdTime 2017年12月30日 下午7:52:35
	 * @param request
	 * @return String
	 *
	 * @version : V1.0.0
	 */
	public static String getIpAddress(HttpServletRequest request)
	{
		String ip = null;
		try
		{
			// 获取用户真是的地址
			String Xip = request.getHeader("X-Real-IP");
			// 获取多次代理后的IP字符串值
			String XFor = request.getHeader("X-Forwarded-For");
			if (StringUtils.isNotEmpty(XFor) && !"unKnown".equalsIgnoreCase(XFor))
			{
				// 多次反向代理后会有多个IP值,第一个用户真实的IP地址
				int index = XFor.indexOf(",");
				if (index >= 0)
				{
					return XFor.substring(0, index);
				} else
				{
					return XFor;
				}
			}
			ip = Xip;
			if (StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip))
			{
				ip = request.getHeader("Proxy-Client-IP");
			}
			if (StringUtils.isEmpty(ip) || ip.length() == 0 || "unknown".equalsIgnoreCase(ip))
			{
				ip = request.getHeader("WL-Proxy-Client-IP");
			}
			if (StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip))
			{
				ip = request.getHeader("HTTP_CLIENT_IP");
			}
			if (StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip))
			{
				ip = request.getHeader("HTTP_X_FORWARDED_FOR");
			}
			if (StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip))
			{
				ip = request.getRemoteAddr();
			}
		} catch (Exception e)
		{
			e.printStackTrace();
		}
		return ip;
	}

 参数说明:

X-Real-IPnginx 代理服务器IP                                                           
X-Forwarded-Forsquid 代理服务器IP
Proxy-Client-IPapache 代理服务器IP
WL-Proxy-Client-IPweblogic 代理服务器IP
HTTP_CLIENT_IPhttp 客户端IP
HTTP_X_FORWARDED_FORhttp 代理服务器IP

完整代码实例

Java通过HttpServletRequest获取用户IP地址完成代码实例,如下:

package com.b2c.microservice.common.utils;

import org.apache.commons.lang.StringUtils;

import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.servlet.http.HttpServletRequest;

/**
 * 
 * @author HuaZai
 * @contact who.seek.me@java98k.vip
 *          <ul>
 * @description TODO
 *              </ul>
 * @className IpUtil
 * @package com.b2c.microservice.common.utils
 * @createdTime 2017年12月30日 下午6:35:00
 *
 * @version V1.0.0
 */
public class IpUtil
{

	/**
	 * 默认IP地址
	 */
	public final static String ERROR_IP = "127.0.0.1";

	/**
	 * IP地址正则表达式
	 */
	public final static Pattern pattern = Pattern.compile(
			"(2[5][0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})\\.(25[0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})\\.(25[0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})\\.(25[0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})");

	/**
	 * 
	 * @author HuaZai
	 * @contact who.seek.me@java98k.vip
	 * @title isValidIP
	 *        <ul>
	 * @description 根据请求验证IP地址
	 *              </ul>
	 * @createdTime 2017年12月30日 下午7:38:19
	 * @param request
	 * @return boolean
	 *
	 * @version : V1.0.0
	 */
	public static boolean isValidIP(HttpServletRequest request)
	{
		// 获取用户真实的IP地址
		String ip = getUserIP(request);
		// 验证IP地址是否符合规则
		return isValidIP(ip);
	}

	/**
	 * 
	 * @author HuaZai
	 * @contact who.seek.me@java98k.vip
	 * @title getRemoteIp
	 *        <ul>
	 * @description 获取远程IP地址
	 *              </ul>
	 * @createdTime 2017年12月30日 下午6:39:22
	 * @param request
	 * @return String
	 *
	 * @version : V1.0.0
	 */
	public static String getRemoteIp(HttpServletRequest request)
	{
		String ip = request.getHeader("x-real-ip");
		if (ip == null)
		{
			ip = request.getRemoteAddr();
		}
		// 过滤反向代理的ip
		String[] stemps = ip.split(",");
		if (stemps != null && stemps.length >= 1)
		{
			// 得到第一个IP,即客户端真实IP
			ip = stemps[0];
		}

		ip = ip.trim();
		if (ip.length() > 23)
		{
			ip = ip.substring(0, 23);
		}

		return ip;
	}

	/**
	 * 
	 * @author HuaZai
	 * @contact who.seek.me@java98k.vip
	 * @title getUserIP
	 *        <ul>
	 * @description 获取用户真实的IP地址
	 *              </ul>
	 * @createdTime 2017年12月30日 下午6:42:17
	 * @param request
	 * @return String
	 *
	 * @version : V1.0.0
	 */
	public static String getUserIP(HttpServletRequest request)
	{
		// 优先取 X-Real-IP
		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.length() == 0 || "unknown".equalsIgnoreCase(ip))
		{
			ip = request.getRemoteAddr();
			if ("0:0:0:0:0:0:0:1".equals(ip))
			{
				ip = ERROR_IP;
			}
		}
		if ("unknown".equalsIgnoreCase(ip))
		{
			ip = ERROR_IP;
			return ip;
		}
		int index = ip.indexOf(',');
		if (index >= 0)
		{
			ip = ip.substring(0, index);
		}

		return ip;
	}

	/**
	 * 
	 * @author HuaZai
	 * @contact who.seek.me@java98k.vip
	 * @title getLastIpSegment
	 *        <ul>
	 * @description 获取末尾IP地址段,{@linkplain IP地址简介}
	 *              </ul>
	 * @createdTime 2017年12月30日 下午6:44:09
	 * @param request
	 * @return String
	 *
	 * @version : V1.0.0
	 */
	public static String getLastIpSegment(HttpServletRequest request)
	{
		// 获取用户真实的IP地址
		String ip = getUserIP(request);
		if (ip != null)
		{
			ip = ip.substring(ip.lastIndexOf('.') + 1);
		} else
		{
			ip = "0";
		}
		return ip;
	}

	/**
	 * 
	 * @author HuaZai
	 * @contact who.seek.me@java98k.vip
	 * @title isValidIP
	 *        <ul>
	 * @description 验证IP地址是否符合规则
	 *              </ul>
	 * @createdTime 2017年12月30日 下午6:49:21
	 * @param ip
	 * @return boolean
	 *
	 * @version : V1.0.0
	 */
	public static boolean isValidIP(String ip)
	{
		if (StringUtils.isEmpty(ip))
		{
			return false;
		}
		Matcher matcher = pattern.matcher(ip);
		boolean isValid = matcher.matches();
		return isValid;
	}

	/**
	 * 
	 * @author HuaZai
	 * @contact who.seek.me@java98k.vip
	 * @title getLastServerIpSegment
	 *        <ul>
	 * @description 获取服务器的会后一个地址段
	 *              </ul>
	 * @createdTime 2017年12月30日 下午7:44:21
	 * @return String
	 *
	 * @version : V1.0.0
	 */
	public static String getLastServerIpSegment()
	{
		String ip = getServerIP();
		if (ip != null)
		{
			ip = ip.substring(ip.lastIndexOf('.') + 1);
		} else
		{
			ip = "0";
		}
		return ip;
	}

	/**
	 * 
	 * @author HuaZai
	 * @contact who.seek.me@java98k.vip
	 * @title getServerIP
	 *        <ul>
	 * @description 获取服务器IP地址
	 *              </ul>
	 * @createdTime 2017年12月30日 下午7:44:16
	 * @return String
	 *
	 * @version : V1.0.0
	 */
	public static String getServerIP()
	{
		InetAddress inetAddress;
		try
		{
			inetAddress = InetAddress.getLocalHost();
			String hostAddress = inetAddress.getHostAddress();
			return hostAddress;
		} catch (UnknownHostException e)
		{
			e.printStackTrace();
		}
		return ERROR_IP;
	}

	/**
	 * 
	 * @author HuaZai
	 * @contact who.seek.me@java98k.vip
	 * @title getIpAddress
	 *        <ul>
	 * @description
	 *              <li>获取IP地址
	 *              <li><strong>注意:</strong>IP地址经过多次反向代理后会有多个IP值,
	 *              <li>其中第一个IP才是真实IP,所以不能通过request.getRemoteAddr()获取IP地址,
	 *              <li>如果使用了多级反向代理的话,X-Forwarded-For的值并不止一个,而是一串IP地址,
	 *              <li>X-Forwarded-For中第一个非unknown的有效IP才是用户真实IP地址。
	 *              </ul>
	 * @createdTime 2017年12月30日 下午7:52:35
	 * @param request
	 * @return String
	 *
	 * @version : V1.0.0
	 */
	public static String getIpAddress(HttpServletRequest request)
	{
		String ip = null;
		try
		{
			// 获取用户真是的地址
			String Xip = request.getHeader("X-Real-IP");
			// 获取多次代理后的IP字符串值
			String XFor = request.getHeader("X-Forwarded-For");
			if (StringUtils.isNotEmpty(XFor) && !"unKnown".equalsIgnoreCase(XFor))
			{
				// 多次反向代理后会有多个IP值,第一个用户真实的IP地址
				int index = XFor.indexOf(",");
				if (index >= 0)
				{
					return XFor.substring(0, index);
				} else
				{
					return XFor;
				}
			}
			ip = Xip;
			if (StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip))
			{
				ip = request.getHeader("Proxy-Client-IP");
			}
			if (StringUtils.isEmpty(ip) || ip.length() == 0 || "unknown".equalsIgnoreCase(ip))
			{
				ip = request.getHeader("WL-Proxy-Client-IP");
			}
			if (StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip))
			{
				ip = request.getHeader("HTTP_CLIENT_IP");
			}
			if (StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip))
			{
				ip = request.getHeader("HTTP_X_FORWARDED_FOR");
			}
			if (StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip))
			{
				ip = request.getRemoteAddr();
			}
		} catch (Exception e)
		{
			e.printStackTrace();
		}
		return ip;
	}
}

*补充:关于正则表达式匹配ip地址,实际上就是分别判断每个点直接的数字是否符合规范

 

 


 好了,关于Java通过HttpServletRequest获取用户IP地址代码实例  就写到这儿了,如果还有什么疑问或遇到什么问题欢迎扫码提问,也可以给我留言哦,我会一一详细的解答的。 
歇后语:“ 共同学习,共同进步 ”,也希望大家多多关注CSND的IT社区。


作       者:华    仔
联系作者:who.seek.me@java98k.vip
来        源:优快云 (Chinese Software Developer Network)
原        文:https://blog.youkuaiyun.com/Hello_World_QWP/article/details/85407888
版权声明:本文为博主原创文章,请在转载时务必注明博文出处!
NVIDIA显卡驱动历史版本全攻略:从官网隐藏入口到精准下载 本文详细介绍了如何获取NVIDIA显卡驱动历史版本的完整攻略,包括官网隐藏入口的揭秘、精准筛选驱动版本的技巧以及安装避坑指南。特别针对游戏玩家、创作者和老显卡用户提供了实用建议,帮助用户解决驱动兼容性问题,提升显卡性能。 阅读详情

相关推荐

电感选型不当的代价:从纹波激增到系统失稳的深度剖析

本文深度剖析了电感选型不当对开关电源系统的严重影响。电感值过小会导致纹波电流激增、元件热应力加剧、EMI超标乃至MOSFET击穿;电感值过大则会引起环路响应迟滞、动态性能下降和轻载效率恶化。文章通过实测案例,强调了超越经典公式进行动态与容差考量的必要性,并提供了基于饱和电流、温升电流及环路测试的精准选型方法论,帮助工程师规避从纹波失控到系统失稳的潜在风险。

flink9streamer的博客 406

获取HttpServletRequest中请求的ip

第一种方法: /** * 获取请求主机IP地址,如果通过代理进来,则透过防火墙获取真实IP地址; * * @param request * @return * @throws IOException */ public final static String getIpAddress(HttpServletRequest request) { String ip=""; try { // 获取请...

m0_37856386的博客 1万+

Nvidia AGX Xavier刷机指北

因为工作的关系,要在AGX上安装CUDA。nvidia官网上没找到适合AGX版本的CUDA,只能走刷机的路子。刷机过程中,也遇到一些坑,做个记录。 需要有一台ubuntu系统的电脑作为主机Host。我的主机系统为Ubuntu18.04 整个刷机过程为: 在Host上安装sdkmanager,整个刷机过程主要通过sdkmanager来操作。 在Host自动下载一些系统组件,各种deb包 Host上制作OS系统镜像,烧录到AGX中 Host上之前下载好的deb包,安装到AGX中。 完结,撒花 ...

sinat_38685124的博客 6292

HttpServletRequest对象中获取客户端IP地址

HttpServletRequest对象中获取客户端IP地址

解决bug的路上 1万+

Llama模型结构拆解:为什么MLP模块要这样设计?从参数配置到计算流程全解析

本文深入解析了Llama模型MLP模块的设计精髓。通过拆解其三线性层结构、门控机制与SwiGLU激活函数,揭示了并行计算如何提升效率,并详细阐述了intermediate_size参数配置背后的经验权衡与计算考量,帮助读者透彻理解这一核心组件的设计逻辑与工程实现。

mac99的博客 528

Spyglass实战指南:跨时钟域同步方案深度解析

本文深度解析了Spyglass在跨时钟域同步方案验证中的实战应用。通过真实案例阐述了亚稳态的危害,并详细介绍了从基础的两级同步器到复杂的异步FIFO与握手协议等八大同步方案,以及如何利用Spyglass进行有效配置、检查与问题排查,为提升芯片设计可靠性提供系统性的避坑指南。

weixin_29219189的博客 834

HttpServletRequest 获取IP地址

HttpServletRequest request =((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest(); public static String getIpAddr(HttpServletRequest request) { String ipAddress = request.getHeader("x-forwarded-for"); if (ipAddress ==.

creazyDa的博客 7589

Apache Hop集成Spring Boot实战:从配置到执行HPL文件

本文详细介绍了将Apache Hop集成到Spring Boot应用中的完整实战方案。通过配置核心依赖、初始化Hop环境、编写服务层逻辑,实现了在Java应用中程序化执行HPL管道文件,从而将可视化ETL能力无缝嵌入微服务架构,提升数据处理的自动化与可维护性。

blue42的博客 473

深入理解在Web应用中HttpServletRequest 获取客户端IP地址的方法

在Web应用开发中,获取客户端IP地址是一项关键任务,但由于代理服务器、负载均衡器和其他中间件的存在,标准方法并不总能提供准确的结果。本文将深入讨论不同场景下获取客户端IP地址的方法,以及如何适应各种网络架构和中间件配置。在现代Web应用中,通过代理服务器传递请求变得普遍,这可能导致获取客户端IP地址变得复杂。我们将探讨代理服务器的作用,以及如何在Java中使用HttpServletRequest获取真实IP地址。

oWuChenHua的博客 3476

STM32F103C8T6 Bootloader开发实战:串口IAP固件升级与Keil工程配置详解

本文详细介绍了STM32F103C8T6 Bootloader开发实战,重点讲解串口IAP固件升级的实现方法与Keil uVision5工程配置。通过Flash分区管理、USART1通信协议设计及应用程序跳转机制等核心技术,帮助开发者掌握嵌入式系统固件升级方案,提升设备维护效率。

weixin_29165725的博客 436

微信H5网页支付JSAPI部分用户报错:system:access_denied 的解决方案

JSAPI 支付仅支持微信内置浏览器调用。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1682

获取用户真实ip地址

/** * * 获取用户真实ip地址 */ public class RequestUtil { private static final String UNKOWN_IP = "unknown"; /** * 获取用户真实IP地址,不使用request.getRemoteAddr();的原因是有可能用户使用了代理软件方式避免真实IP地址, * <p> * 可是,如果通过了多级反向代理的话,X-Forwarded-For的值并不止一个,而是一串I.

pengzhen_pz的博客 695

Vue+OpenLayers:解决中国境内OpenStreetMap地图加载问题

然而,在使用OpenLayers和Vue框架搭建地图应用时,很多中国开发者可能会遇到一个常见问题:OpenStreetMap(OSM)地图无法正常加载。为了解决这个问题,我们可以使用其他方式获取地图数据,比如使用国内的地图服务提供商。通过使用国内地图服务商提供的地图数据,我们可以解决OpenStreetMap地图加载问题。然后,我们创建一个OpenLayers地图对象,并指定地图图层的源为国内地图服务商提供的地图URL。属性,可以将地图的中心点和缩放级别调整到我们需要的位置。

CodeWhizZ的博客 8268

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

日常记录

个人日常记录,分析 6664

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Java通过Request获取用户IP代码实例

本着相互交流学习的目的,最近在网上学习和查找了“java如何通过HttpServletRequest获取用户真实请求ip”的相关文章,结合部分大神的示例代码资源,整理出本文章,供大家参考。代码如下: import javax.servlet.http.HttpServletRequest; import org.apache.commons.lang.StringUtils; /** ...

kingAndwang的博客 826

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

java获取用户登录的ip地址(考虑多种请求头的情况)

这段代码网上找的,传一个HttpServletRequest request就行,直接用public class IpUtil { /** * 获取登录用户IP地址 * * @param request * @return */ public static String getIpAddr(HttpServletRequest re...

Honins的博客 1870

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

获取访问用户的ip地址

【代码】获取访问用户的ip地址。

xcyxqt的博客 684

java 获取ip 端口_java中获取服务器的IP和端口

感谢!! 解决我的大问题struts2 获取requestHttpServletRequest requet=ServletActionContext.getRequest();requet.getScheme()+"://"+requet.getServerName()+":"+requet.getServerPort()request.getHeader("User-Agent"); /...

weixin_29745609的博客 811

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

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

a18372016358的博客 3279

SpringBoot 快速获取 IP 地址及归属地

SpringBoot 中使用 HttpServletRequest 获取 IP 地址,使用 Ip2region 离线分析 IP 归属地。

weixin_43400476的博客 1558

java获取客户端IP地址

java获取客户端IP地址

baiyongliang 1351

springmvc 获取调用方IP

HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest(); String addr = request.getRemoteAddr(); System.out.println("调用方ip"+addr);

linjun20的博客 719

java:获取用户ip工具类

java:获取用户ip工具类

一个天蝎座的程序猿! 476

ip效验和ip段的效验

package com.juchen.utils; import javax.servlet.http.HttpServletRequest; /** * ip 相关的工具方法 */ public class IpUtil { /* *//** * 根据request获取用户的IP地址 * @param request ...

dea2015的博客 351

Java获得ip地址

为什么80%的码农都做不了架构师?>>> ...

weixin_34376562的博客 110

获得在线用户IP

获得用户当前IP [code="java"] public static String get_onlineip(HttpServletRequest request) { String ip = request.getHeader("x-forwarded-for"); if(Common.empty(ip) || "unknown".equalsIgnoreCase(ip)) ...

瑞克 159
上一篇: 分布式注册中心 Eureka 与 zookeeper 的区别、原理及各自优缺点
下一篇: Spring Cloud 基本理论概述
TechBro华仔
TechBro华仔 优质创作者: Java技术领域 优质创作者: Java技术领域 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄11年 5万+粉丝 430原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TechBro华仔

日拱一卒无有尽,功不唐捐终入海

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值