java获取登录内网ip地址
最近好多小伙伴在和我说怎么java怎么获取登录的ip地址,今天就分享一下我的方法了。
1、直接获取ip地址
//获取request请求HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();//获取IP地址String ipaddr = request.getRemoteAddr();if(ipaddr == "0:0:0:0:0:0:0:1"){ipaddr ="127.0.0.1";}System.out.println(ipaddr);
2、第二种封装成util工具类
public class IPUtil {/*** 获取ip*/public static String getIp(HttpServletRequest request) {if (request == null)return "";String ip = request.getHeader("X-Requested-For");if (StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("X-Forwarded-For");}if (StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("Proxy-Client-IP");}if (StringUtils.isEmpty(ip) || "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();}if ("0:0:0:0:0:0:0:1".equals(ip)) {return "127.0.0.1";}return ip;}public static boolean isLocalHost(String ip) {return "127.0.0.1".equals(ip) || "localhost".equals(ip);}}