博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
获取客户的真实IP地址
阅读量:4180 次
发布时间:2019-05-26

本文共 1866 字,大约阅读时间需要 6 分钟。

IpUtil工具类如下:

 

package com.xiaobu.base.utils;import javax.servlet.http.HttpServletRequest;/** * @author xiaobu * @version JDK1.8.0_171 * @date on  2018/11/7 10:19 * @description V1.0 */public class IpUtils {    /**     * 获取访问用户的客户端IP(适用于公网与局域网).     */    public static  String getIpAddr(final HttpServletRequest request)            throws Exception {        if (request == null) {            throw (new Exception("getIpAddr method HttpServletRequest Object is null"));        }        String ipString = request.getHeader("X-Real-IP");        if (isBlank(ipString) || "unknown".equalsIgnoreCase(ipString)) {             ipString = request.getHeader("X-Forwarded-For");        }        if (isBlank(ipString) || "unknown".equalsIgnoreCase(ipString)) {            ipString = request.getHeader("Proxy-Client-IP");        }        if (isBlank(ipString) || "unknown".equalsIgnoreCase(ipString)) {            ipString = request.getHeader("WL-Proxy-Client-IP");        }        if (isBlank(ipString) || "unknown".equalsIgnoreCase(ipString)) {            ipString = request.getHeader("X-Real-IP");        }        if (isBlank(ipString) || "unknown".equalsIgnoreCase(ipString)) {            ipString = request.getRemoteAddr();        }        // 多个路由时,取第一个非unknown的ip        final String[] arr = ipString.split(",");        for (final String str : arr) {            if (!"unknown".equalsIgnoreCase(str)) {                ipString = str;                break;            }        }        return ipString;    }    /***     * @author xiaobu     * @date 2018/11/7 10:41     * @param ip ip地址     * @return boolean     * @descprition  判断IP地址是否有效     * @version 1.0     */    public static boolean isBlank(String ip){        return ip == null || ip.trim().length() == 0;    }}

JS获取IP地址可以访问以下两个网站:

http://pv.sohu.com/cityjson?ie=utf-8http://ip.taobao.com/service/getIpInfo2.php?ip=myip

 

转载地址:http://qugai.baihongyu.com/

你可能感兴趣的文章
SpringBoot | 常用注解记录
查看>>
JavaBean对象转换EntityUtils工具类
查看>>
Maven常用命令
查看>>
SpringBoot | 运行报错,无法加载oracle连接驱动
查看>>
为什么阿里巴巴禁止在 foreach 循环里进行元素的 remove/add 操作
查看>>
AWS EC2如何从普通用户切换为root用户
查看>>
click方法不生效的
查看>>
mysql排行榜并列与不并列
查看>>
SpringBoot | Mybatis申明为Mapper文件
查看>>
JPA主键生成策略
查看>>
byte数组和InputStream的相互转换
查看>>
InputStream,InputStreamReader和Reader之间的区别与关系
查看>>
Java中System.arraycopy方法的使用
查看>>
tk.mybatis的使用记录
查看>>
遍历获取目录下的所有文件
查看>>
从指定服务器路径下载文件
查看>>
EasyExcel读取和写入java model数据
查看>>
《C编译原理》共享库的动态加载和静态加载
查看>>
《Android系统学习》第二章:如何制作OTA U盘升级包
查看>>
《Android系统学习》第五章:编译Android的JDK环境
查看>>