zoukankan      html  css  js  c++  java
  • 获取对方请求的访问ip地址

    (很实用,哈哈)直接上代码

    import javax.servlet.http.HttpServletRequest;
    
    /**
     * http工具类
     */
    public class HttpUtil {
    	
    	private HttpUtil(){
        	
        }
    	
    	/**
    	 * 请求成功码
    	 */
    	public static final String successCode = "200";
    	/**
    	 * 用户新建或修改数据成功
    	 */
    	public static final String saveOrUpdate = "201";
    	/**
    	 * 请求失败码
    	 */
    	public static final String failCode = "500";
    	/**
    	 * 重新登陆码
    	 */
    	public static final String re_loginCode = "100";
    	/**
    	 * 没有权限
    	 */
    	public static final String unauth = "301";
    
    	/**
    	 * 验证码为空
    	 */
    	public static final String CodeNull = "302";
    
    
    	/**
    	 * 账号不存在
    	 */
    	public static final String NoUser = "304"	;
    
    
    	/**
    	 * 密码错误
    	 */
    	public static final String PasswordErro = "305"	;
    
    
    	/**
    	 * 验证码错误
    	 */
    	public static final String CodeErro = "306"	;
    
    	/**
    	 * 无效Token
    	 */
    	public static final String NoToken = "307"	;
    	
    	/**
    	 * Token格式错误
    	 */
    	public static final String TokenErr = "308"	;
    	
    	/**
    	 * 获取ip地址
    	 * @param request
    	 * @return
    	 */
    	public static String getIpAddress(HttpServletRequest request) {
    		String ip = request.getHeader("x-forwarded-for");
    //		String ip = request.getHeader("Proxy-Client-IP");//处理IP
    		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();
    		}
    		
    		if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
    	        //X-Real-IP:nginx服务代理 
    			ip = request.getHeader("X-Real-IP");
    	    }
    		if(ip!=null){
    			ip=ip.split(",")[0];
    //			if(ip.indexOf(",")>0){
    //				ip=ip.substring(0,ip.indexOf(","));
    //			}
    		}
     		return ip;
    	}
    	public static void main(String[] args) {
    		String ip="127.0.0.1,127.1.1.1";
    		ip=ip.split(",")[0];
    		System.out.println(ip);
    	}
    }
    
    
    	
    

      

  • 相关阅读:
    大数据面试题题库
    IDEA下通过Git实现代码管理
    使用QJM实现HDFS的HA配置
    1、HDFS分布式文件系统
    分析system_call中断处理过程
    由一段代码解析系统调用的原理
    从linux内核代码分析操作系统启动过程
    一个简单的时间片轮转多道程序内核
    从一段代码的汇编看计算机的工作原理
    九度OJ1468
  • 原文地址:https://www.cnblogs.com/otways/p/11431352.html
Copyright © 2011-2022 走看看