获取IP地址

来源:互联网 发布:vb 墨镜 编辑:程序博客网 时间:2024/04/28 10:46

1、获取本机器的IP地址和端口号

public static void main(String [] args){          InetAddress netAddress = getInetAddress();          System.out.println("host ip:" + getHostIp(netAddress));          System.out.println("host name:" + getHostName(netAddress));          Properties properties = System.getProperties();          Set<String> set = properties.stringPropertyNames(); //获取java虚拟机和系统的信息。          for(String name : set){              System.out.println(name + ":" + properties.getProperty(name));          }      }        public static InetAddress getInetAddress(){            try{              return InetAddress.getLocalHost();          }catch(UnknownHostException e){              System.out.println("unknown host!");          }          return null;        }        public static String getHostIp(InetAddress netAddress){          if(null == netAddress){              return null;          }          String ip = netAddress.getHostAddress(); //get the ip address          return ip;      }        public static String getHostName(InetAddress netAddress){          if(null == netAddress){              return null;          }          String name = netAddress.getHostName(); //get the host address          return name;      }


2、获取访问者IP

/**     * 获取访问者IP     * <p/>     * 在一般情况下使用Request.getRemoteAddr()即可,但是经过nginx等反向代理软件后,这个方法会失效。     * <p/>     * 本方法先从Header中获取X-Real-IP,如果不存在再从X-Forwarded-For获得第一个IP(用,分割),     * 如果还不存在则调用Request .getRemoteAddr()。     *     * @param request     * @return     */    public static String getIp(HttpServletRequest request) {        String ip = request.getHeader("X-Real-IP");        if (!StringUtils.isBlank(ip) && !"unknown".equalsIgnoreCase(ip)) {            return ip;        }        ip = request.getHeader("X-Forwarded-For");        if (!StringUtils.isBlank(ip) && !"unknown".equalsIgnoreCase(ip)) {            // 多次反向代理后会有多个IP值,第一个为真实IP。            int index = ip.indexOf(',');            if (index != -1) {                return ip.substring(0, index);            } else {                return ip;            }        } else {            return request.getRemoteAddr();        }    }


0 0
原创粉丝点击