JAVA获取访问者IP地址
pom
- <dependency>
- <groupId>org.apache.tomcat.embed</groupId>
- <artifactId>tomcat-embed-core</artifactId>
- </dependency>
- <dependency>
- <groupId>commons-lang</groupId>
- <artifactId>commons-lang</artifactId>
- <version>2.6</version>
- <scope>compile</scope>
- </dependency>
- /**
- * 获取访问者IP
- * 在一般情况下使用Request.getRemoteAddr()即可,但是经过nginx等反向代理软件后,这个方法会失效。
- * 本方法先从Header中获取X-Real-IP,如果不存在再从X-Forwarded-For获得第一个IP(用,分割),
- * 如果还不存在则调用Request .getRemoteAddr()。
- * @param request
- * @return
- */
- public static String getIpAddr(HttpServletRequest request) {
- String ip = request.getHeader("X-Real-IP");
- if (!StringUtils.isBlank(ip) && !"unknown".equalsIgnoreCase(ip)) {
- if(ip.contains("../")||ip.contains("..\\")){
- return "";
- }
- return ip;
- }
- ip = request.getHeader("X-Forwarded-For");
- if (!StringUtils.isBlank(ip) && !"unknown".equalsIgnoreCase(ip)) {
- // 多次反向代理后会有多个IP值,第一个为真实IP。
- int index = ip.indexOf(',');
- if (index != -1) {
- ip= ip.substring(0, index);
- }
- if(ip.contains("../")||ip.contains("..\\")){
- return "";
- }
- return ip;
- } else {
- ip=request.getRemoteAddr();
- if(ip.contains("../")||ip.contains("..\\")){
- return "";
- }
- if(ip.equals("0:0:0:0:0:0:0:1")){
- ip="127.0.0.1";
- }
- return ip;
- }
- }
JAVA获取访问者IP地址的更多相关文章
- java获取服务器IP地址及MAC地址的方法
这篇文章主要介绍了java编程实现获取机器IP地址及MAC地址的方法,实例分析了Java分别针对单网卡及多网卡的情况下获取服务器IP地址与MAC地址的相关技巧,需要的朋友可以参考下 本文实例讲述了 ...
- JAVA获取客户端IP地址
在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实I ...
- JAVA获取客户端IP地址和MAC地址
1.获取客户端IP地址 public String getIp(HttpServletRequest request) throws Exception { String ip = request.g ...
- java获取客户端ip地址工具类
public class IpUtils { private static final String[] HEADERS = { "X-Forwarded-For", " ...
- java获取网络ip地址
在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实I ...
- JAVA 获取访问者IP
* 获取访问者IP * * 在一般情况下使用Request.getRemoteAddr()即可,但是经过nginx等反向代理软件后,这个方法会失效. * * 本方法先从Header中获取X-Real- ...
- java 获取真实ip地址
/** * 获取真实ip地址 * @param request * @return */ public static String getIpAddress(HttpServletRequest re ...
- Java获取本地IP地址和主机名
方式一:通过java.net.InetAddress类获取 public void test1() { try { InetAddress addr = InetAddress.getLocalHos ...
- Java获取本地IP地址
import java.net.InetAddress; import java.net.UnknownHostException; public class IpTest { public stat ...
随机推荐
- zabbix 内网机器通信状态
a=0 for xgip in ${xgipset[*]} do let a+=1 fping $xgip|grep alive >/dev/null if [ $a != 3 ];then i ...
- 零基础学习java------day2------关键字、标志符、常量、进制键的转换、java中的数据类型、强制类型转换的格式
今日内容要求: 1. 了解关键字的概念及特点,了解保留字 2. 熟练掌握标识符的含义,特点,可使用字符及注意事项 3. 了解常量的概念,进制,进制之间相互转换,了解有符号标识法的运算方式 4. 掌握变 ...
- 【Elasticsearch-Java】Java客户端搭建
Elasticsearch Java高级客户端 1. 概述 Java REST Client 有两种风格: Java Low Level REST Client :用于Elasticsearch ...
- Ibatis中SqlMapClientTemplate和SqlMapClient的区别
SqlMapClientTemplate是org.springframework.orm.ibatis下的 而SqlMapClient是ibatis的 SqlMapClientTemplate是Sql ...
- python做一个http接口测试框架
目录结构 project case#测试用例 suite#测试目录 logs#测试日志 papi#测试类 result#测试结果 setting.py#配置文件 1.日志类,用于测试时日志记录 pya ...
- spring认证的一些核心类
SecurityContextHolder, to provide access to the SecurityContext. SecurityContext: to hold the Authen ...
- 删除数据库时报错 ERROR 1010 (HY000): Error dropping database (can't rmdir './cart', errno: 39)
这是因为在数据目录下有表相关的数据(不是表),此时应该进入存放表的目录下删除与表相关的数据,一般数据存放目录默认为/var/lib/mysql,cd到目录下 执行命令:cd /var/lib/mysq ...
- 最基础前端路由实现,事件popstate使用
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 修改页面.JSP
<%@ page contentType="text/html;charset=UTF-8" language="java" %><%@tag ...
- Properties类继承HashTable类,一般用来给程序配置属性文件。
package com.itcast.demo04.Prop;import jdk.internal.util.xml.impl.ReaderUTF8;import sun.nio.cs.UTF_32 ...