最近在一个多系统集成的项目中,由于跳转路径含IP地址,每次IP改了重启项目都得改好多地方,甚是麻烦。刚在网上了解到java获取IP地址,给大家分享下:

首先要导入jar包

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

下面是我在网上了解到的方法

方法一:

 public String getIpAddr(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
if(ip == null || ip.length() == 0) {
ip = request.getRemoteAddr();
}
return ip;
}

方法二:

 public String getIpAddr(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
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.getRemoteAddr();
}
return ip;
}

来源:https://blog.csdn.net/lijunlinlijunlin/article/details/43714443

java获取IP地址的更多相关文章

  1. Java获取ip地址的几种方法

    以下内容介绍下java获取ip地址的几种思路. 1.直接利用java.net.InetAddress类获取,不过这种方法只在windows环境下有效,在linux环境下只能获取localhost地址( ...

  2. java 获取ip地址和网络接口

    */ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...

  3. Java获取IP地址,IpUtils工具类,Java IP地址获取

    ================================ ©Copyright 蕃薯耀 2020-01-17 https://www.cnblogs.com/fanshuyao/ import ...

  4. Java获取IP地址:request.getRemoteAddr()注意

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

  5. MAC地址,使用java获取IP地址和MAC地址。

    MAC地址,通常在http连接的项目中,来区分唯一客户端. MAC:六组十六进制字符组成. 如:E0-3F-49-AB-DB-EB IP:四组八位的二进制字符组成. 如:10.6.62.244 /** ...

  6. java 获取ip地址

    1.使用WIFI 首先设置用户权限 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"& ...

  7. 利用Java获取ip地址

    方法1 public static String getIp2(HttpServletRequest request) { String ip = request.getHeader("X- ...

  8. Java 获取 IP

    /** * 获取访问者IP. * 在一般情况下使用 Request.getRemoteAddr() 即可,但是经过 nginx 等反向代理软件后,这个方法会失效. */ private String ...

  9. Java根据ip地址获取Mac地址,Java获取Mac地址

    Java根据ip地址获取Mac地址,Java获取Mac地址 >>>>>>>>>>>>>>>>>&g ...

随机推荐

  1. 简单说明一下JS中的函数声明存在的“先使用,后定义”

    首先看一段JS代码,其中使用了两种方式声明了两个函数,分别在不同的地方调用两个函数: <script> 'use strict'; // 输出hello函数 console.log(hel ...

  2. VPP(Vector Packet Processing)配置工具

    前言 VPP提供了一个配置工具,让用户可以简单快捷地配置VPP.用户可以通过一些简单的命令配置VPP,功能包括安装及一些基本配置和测试用例. 使用 先安装一个python的pip模块,使用pip安装V ...

  3. linux文件系统写过程简析

    linux写入磁盘过程经历VFS ->  页缓存(page cache) -> 具体的文件系统(ext2/3/4.XFS.ReiserFS等) -> Block IO ->设备 ...

  4. goldengate简单配置

    goldendate配置单项同步 源数据库    extract抽取进程 trail文件 复制进程 目标进程 由于最开始配置goldengate的时候,没有弄清除原理,导致出错了都不知道怎么解决. 最 ...

  5. 三、Shiro授权开发

    Shiro 支持三种方式的授权: I. 编程式:通过写if/else 授权代码块完成: Subject subject =SecurityUtils.getSubject(); if(subject. ...

  6. C++较精确的测试代码运行时间

    #include <chrono> using namespace chrono; int main() { auto t0 = system_clock::now(); //测试代码 a ...

  7. docker tar 镜像 容器相互转换

    学习 使用 docker 也有一段时间了 但是在基础去上面有些东西总是容易忘记 整理之前看到的文档,看到一个问题 怎么将一个容器导出成为tar,我本以为是首先 保存成为镜像 再 save 进行保存 查 ...

  8. jquery购物车添加功能

    <html> <head> <meta charset="UTF-8"> <title></title> <scr ...

  9. php 实现重定向的三种方式

    header()函数; header('location:http://www.baidu.com'); meta标签; echo '<meta http-equiv="refresh ...

  10. PHP实现多继承 - 通过接口的多继承特性(二)

    原文地址:http://small.aiweimeng.top/index.php/archives/51.html 在上篇文章中写到php可以使用```Trait```实现代码的复用,下面介绍使用接 ...