本着相互交流学习的目的,最近在网上学习和查找了“java如何通过HttpServletRequest获取用户真实请求ip”的相关文章,结合部分大神的示例代码资源,整理出本文章,供大家参考。代码如下:
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang.StringUtils;
/**
* 测试类
*/
public class TakeIpTest
{
/**
* ip获取方法
*/
public static String getIpAddress(HttpServletRequest request)
{
try
{
// 获取用户真实的ip地址(有代理时配置文件必须配置才能获取得到)
String xIp = request.getHeader("X-Real-IP") ;
if(judgeString(xIp)!=null)
{
return judgeString(xIp) ;
}
// 获取多次代理后的IP字符串值,有值就取第一个(大部分代理第一个ip是用户的真实ip)
String xFfIp = request.getHeader("X-Forwarded-For") ;
if (judgeString(xFfIp)!=null)
{
String[] strs = xFfIp.split(",") ;
// for (String s : strs)
// {
// if (judgeString(s)!=null)
// {
// return judgeString(Xip) ;
//