Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

java获取当前请求的ip地址

作者:__龙泉丶聂风   发布日期:2026-03-07   浏览:119

import javax.servlet.http.HttpServletRequest;

public class IpUtil {

    /**
     * 获取当前请求的IP地址
     * @param request 请求对象
     * @return IP地址字符串
     */
    public static 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.getHeader("HTTP_CLIENT_IP");
        }
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("HTTP_X_FORWARDED_FOR");
        }
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getRemoteAddr();
        }
        return ip;
    }
}

解释说明:

  1. getIpAddr 方法:该方法用于获取客户端的 IP 地址。它通过检查多个 HTTP 请求头来确定真实的 IP 地址。
  2. 请求头检查顺序
    • x-forwarded-for:通常由代理服务器设置,包含客户端的真实 IP 地址。
    • Proxy-Client-IPWL-Proxy-Client-IP:WebLogic 服务器使用的头部。
    • HTTP_CLIENT_IPHTTP_X_FORWARDED_FOR:其他可能的代理或网关设置的头部。
  3. 默认值:如果所有头部都为空或为 "unknown",则使用 request.getRemoteAddr() 获取直接连接的客户端 IP 地址。
  4. 返回值:最终返回一个表示客户端 IP 地址的字符串。

这个方法适用于大多数常见的 Web 应用场景,特别是当应用程序部署在反向代理(如 Nginx 或 Apache)后面时。

上一篇:java调用dll动态库

下一篇:java取整

大家都在看

java url decode

java判断是windows还是linux

java连接数据库的代码

java date类型比较大小

java djl

ubuntu 卸载java

es java api

java list 查找

java 解压rar

java读取excel中的图片

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站