pom

  1. <dependency>
  2. <groupId>org.apache.tomcat.embed</groupId>
  3. <artifactId>tomcat-embed-core</artifactId>
  4. </dependency>
  5. <dependency>
  6. <groupId>commons-lang</groupId>
  7. <artifactId>commons-lang</artifactId>
  8. <version>2.6</version>
  9. <scope>compile</scope>
  10. </dependency>
  1. /**
  2. * 获取访问者IP
  3. * 在一般情况下使用Request.getRemoteAddr()即可,但是经过nginx等反向代理软件后,这个方法会失效。
  4. * 本方法先从Header中获取X-Real-IP,如果不存在再从X-Forwarded-For获得第一个IP(用,分割),
  5. * 如果还不存在则调用Request .getRemoteAddr()。
  6. * @param request
  7. * @return
  8. */
  9. public static String getIpAddr(HttpServletRequest request) {
  10. String ip = request.getHeader("X-Real-IP");
  11. if (!StringUtils.isBlank(ip) && !"unknown".equalsIgnoreCase(ip)) {
  12. if(ip.contains("../")||ip.contains("..\\")){
  13. return "";
  14. }
  15. return ip;
  16. }
  17. ip = request.getHeader("X-Forwarded-For");
  18. if (!StringUtils.isBlank(ip) && !"unknown".equalsIgnoreCase(ip)) {
  19. // 多次反向代理后会有多个IP值,第一个为真实IP。
  20. int index = ip.indexOf(',');
  21. if (index != -1) {
  22. ip= ip.substring(0, index);
  23. }
  24. if(ip.contains("../")||ip.contains("..\\")){
  25. return "";
  26. }
  27. return ip;
  28. } else {
  29. ip=request.getRemoteAddr();
  30. if(ip.contains("../")||ip.contains("..\\")){
  31. return "";
  32. }
  33. if(ip.equals("0:0:0:0:0:0:0:1")){
  34. ip="127.0.0.1";
  35. }
  36. return ip;
  37. }
  38.  
  39. }

JAVA获取访问者IP地址的更多相关文章

  1. java获取服务器IP地址及MAC地址的方法

    这篇文章主要介绍了java编程实现获取机器IP地址及MAC地址的方法,实例分析了Java分别针对单网卡及多网卡的情况下获取服务器IP地址与MAC地址的相关技巧,需要的朋友可以参考下   本文实例讲述了 ...

  2. JAVA获取客户端IP地址

    在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实I ...

  3. JAVA获取客户端IP地址和MAC地址

    1.获取客户端IP地址 public String getIp(HttpServletRequest request) throws Exception { String ip = request.g ...

  4. java获取客户端ip地址工具类

    public class IpUtils { private static final String[] HEADERS = { "X-Forwarded-For", " ...

  5. java获取网络ip地址

    在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实I ...

  6. JAVA 获取访问者IP

    * 获取访问者IP * * 在一般情况下使用Request.getRemoteAddr()即可,但是经过nginx等反向代理软件后,这个方法会失效. * * 本方法先从Header中获取X-Real- ...

  7. java 获取真实ip地址

    /** * 获取真实ip地址 * @param request * @return */ public static String getIpAddress(HttpServletRequest re ...

  8. Java获取本地IP地址和主机名

    方式一:通过java.net.InetAddress类获取 public void test1() { try { InetAddress addr = InetAddress.getLocalHos ...

  9. Java获取本地IP地址

    import java.net.InetAddress; import java.net.UnknownHostException; public class IpTest { public stat ...

随机推荐

  1. zabbix 内网机器通信状态

    a=0 for xgip in ${xgipset[*]} do let a+=1 fping $xgip|grep alive >/dev/null if [ $a != 3 ];then i ...

  2. 零基础学习java------day2------关键字、标志符、常量、进制键的转换、java中的数据类型、强制类型转换的格式

    今日内容要求: 1. 了解关键字的概念及特点,了解保留字 2. 熟练掌握标识符的含义,特点,可使用字符及注意事项 3. 了解常量的概念,进制,进制之间相互转换,了解有符号标识法的运算方式 4. 掌握变 ...

  3. 【Elasticsearch-Java】Java客户端搭建

    Elasticsearch Java高级客户端   1.  概述 Java REST Client 有两种风格: Java Low Level REST Client :用于Elasticsearch ...

  4. Ibatis中SqlMapClientTemplate和SqlMapClient的区别

    SqlMapClientTemplate是org.springframework.orm.ibatis下的 而SqlMapClient是ibatis的 SqlMapClientTemplate是Sql ...

  5. python做一个http接口测试框架

    目录结构 project case#测试用例 suite#测试目录 logs#测试日志 papi#测试类 result#测试结果 setting.py#配置文件 1.日志类,用于测试时日志记录 pya ...

  6. spring认证的一些核心类

    SecurityContextHolder, to provide access to the SecurityContext. SecurityContext: to hold the Authen ...

  7. 删除数据库时报错 ERROR 1010 (HY000): Error dropping database (can't rmdir './cart', errno: 39)

    这是因为在数据目录下有表相关的数据(不是表),此时应该进入存放表的目录下删除与表相关的数据,一般数据存放目录默认为/var/lib/mysql,cd到目录下 执行命令:cd /var/lib/mysq ...

  8. 最基础前端路由实现,事件popstate使用

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  9. 修改页面.JSP

    <%@ page contentType="text/html;charset=UTF-8" language="java" %><%@tag ...

  10. Properties类继承HashTable类,一般用来给程序配置属性文件。

    package com.itcast.demo04.Prop;import jdk.internal.util.xml.impl.ReaderUTF8;import sun.nio.cs.UTF_32 ...