Java获取ip地址
来源:互联网 发布:吉林省财政厅网络完全 编辑:程序博客网 时间:2024/05/21 09:24
直接帖代码
首先写一个IpUtil工具类
package com.craft.util;import javax.servlet.http.HttpServletRequest;/** * * @author -.-- .- -. --. --.. .. .- -. * 获取用户ip地址 */public class IpUtil { /** * 获取客户端ip地址(可以穿透代理) * * @param request * @return */ public static String getRemoteAddr(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("HTTP_CLIENT_IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_X_FORWARDED_FOR"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getRemoteAddr(); } return ip; } private static final String[] HEADERS_TO_TRY = { "X-Forwarded-For", "Proxy-Client-IP", "WL-Proxy-Client-IP", "HTTP_X_FORWARDED_FOR", "HTTP_X_FORWARDED", "HTTP_X_CLUSTER_CLIENT_IP", "HTTP_CLIENT_IP", "HTTP_FORWARDED_FOR", "HTTP_FORWARDED", "HTTP_VIA", "REMOTE_ADDR", "X-Real-IP"}; /*** * 获取客户端ip地址(可以穿透代理) * @param request * @return */ public static String getClientIpAddress(HttpServletRequest request) { for (String header : HEADERS_TO_TRY) { String ip = request.getHeader(header); if (ip != null && ip.length() != 0 && !"unknown".equalsIgnoreCase(ip)) { return ip; } } return request.getRemoteAddr(); } /*** * 获取客户端ip地址(可以穿透代理) * @param request * @return */ public static String getClientIpAddr(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("HTTP_X_FORWARDED_FOR"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_X_FORWARDED"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_X_CLUSTER_CLIENT_IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_CLIENT_IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_FORWARDED_FOR"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_FORWARDED"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_VIA"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("REMOTE_ADDR"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getRemoteAddr(); } return ip; } public static String getIpAddr(HttpServletRequest request) { String ip = request.getHeader("X-Real-IP"); if (null != ip && !"".equals(ip.trim()) && !"unknown".equalsIgnoreCase(ip)) { return ip; } ip = request.getHeader("X-Forwarded-For"); if (null != ip && !"".equals(ip.trim()) && !"unknown".equalsIgnoreCase(ip)) { // get first ip from proxy ip int index = ip.indexOf(','); if (index != -1) { return ip.substring(0, index); } else { return ip; } } return request.getRemoteAddr(); } }
System.out.println("***********************************************");System.out.println("getIpAddr:" + IpUtil.getIpAddr(request));System.out.println("getRemoteAddr:"+IpUtil.getRemoteAddr(request));System.out.println("getClientIpAddr:"+IpUtil.getClientIpAddr(request));System.out.println("getClientIpAddress:"+IpUtil.getClientIpAddress(request));System.out.println("***********************************************");ojbk 可以了 尽情的恣意吧有不对的地方 欢迎补充
不接受反驳 ~~~~~~
阅读全文
1 0
- Java获取IP地址
- java获取ip地址
- java获取ip地址
- java获取ip地址
- Java获取IP地址
- java获取ip地址
- java获取IP地址
- java获取ip地址
- java获取ip地址
- java获取ip地址
- java获取IP地址
- java获取IP地址:
- Java获取IP地址
- java获取ip地址
- java获取ip地址
- java获取ip地址
- java获取IP地址
- Java获取IP地址
- Spring Cloud Config 之svn配置仓库与动态刷新(客户端手动手动刷新)
- java汽车租赁系统代码
- 139. Word Break
- 基于SSM利用SpringAOP切面及自定义注解 记录每次操作记录(操作日志 同理)
- MFC-CProgressCtrl进度条控件
- Java获取ip地址
- selenium上
- Glide使用占位图时会出现的问题
- ExpandableListView、ListView EditText 输入数据混乱的问题
- 简易音频管理
- JAVA设计模式之桥接模式
- selenium中
- python flask 通过ajax向后台传递数组参数
- log4js 2.x的配置使用