zoukankan      html  css  js  c++  java
  • IPUtils

    package com.cc.hkjc.util;

    import java.net.InetAddress;
    import java.net.UnknownHostException;

    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    public class IPUtils {
        //到客户端查询用户的ip地址
        public static String getIp(HttpServletRequest request, HttpServletResponse response) {   
             String ipAddress = null;   
             //ipAddress = this.getRequest().getRemoteAddr();   
             ipAddress = request.getHeader("x-forwarded-for");   
             if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {   
              ipAddress =request.getHeader("Proxy-Client-IP");   
             }   
             if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {   
                 ipAddress = request.getHeader("WL-Proxy-Client-IP");   
             }   
             if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {   
              ipAddress = request.getRemoteAddr();   
              if(ipAddress.equals("127.0.0.1")){   
               //根据网卡取本机配置的IP   
               InetAddress inet=null;   
            try {   
             inet = InetAddress.getLocalHost();   
            } catch (UnknownHostException e) {   
             e.printStackTrace();   
            }   
            ipAddress= inet.getHostAddress();   
              }   
                    
             }   
          
             //对于通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割   
             if(ipAddress!=null && ipAddress.length()>15){ //"***.***.***.***".length() = 15   
                 if(ipAddress.indexOf(",")>0){   
                     ipAddress = ipAddress.substring(0,ipAddress.indexOf(","));   
                 }   
             }   
             return ipAddress;    
          }
    }

  • 相关阅读:
    Xcode9自带版本控制系统(Git)的使用
    iOS中的枚举:enum, NS_ENUM, NS_OPTIONS的使用区别
    iOS页面右滑返回的实现方法总结
    [C++]项目中的代码注释规范(整理)
    Dynamic Time Warping 动态时间规整算法
    动态时间归整/规整/弯曲(Dynamic time warping,DTW)
    隐马尔科夫模型HMM学习最佳范例
    蓝牙4.0协议基本介绍以及展望
    UART的CTS与RTS
    KEIL MDK输出map文件分析
  • 原文地址:https://www.cnblogs.com/strive-study/p/5161754.html
Copyright © 2011-2022 走看看