You need to enable JavaScript to run this app.
导航
获取网站业务请求来源 IP
最近更新时间:2024.09.09 14:34:19首次发布时间:2024.09.09 14:34:19

如果您的业务通过网站方式接入 DDoS 高防实例,则访问请求经过 DDoS 高防转发到源站,源站会默认将 DDoS 高防的回源 IP 视为请求来源,而真实的请求来源 IP 被记录在 HTTP 头部的X-Forwarded-For字段中。本文介绍如何获取真实的请求来源 IP。

背景信息

在使用代理服务器的请求中,X-Forwarded-For字段记录了真实请求来源 IP 和所有经过的代理服务器 IP。

  • 如果您的访问请求到源站之间经过高防代理服务器,则 HTTP 头部的X-Forwarded-For字段记录真实的请求来源 IP 和高防代理 IP。格式为X-Forwarded-For: 真实请求来源 IP, 高防代理 IP
  • 如果您的访问请求到源站之间经过多台代理服务器(例如 Web 应用防火墙、内容分发网络等代理服务器),则 HTTP 头部的X-Forwarded-For字段记录真实的请求来源 IP 和所有经过的代理服务器 IP。格式为X-Forwarded-For: 真实请求来源 IP, 代理服务器 1 的 IP, 代理服务器 2 的 IP, ...

因此,常见的网站业务服务器都可以通过X-Forwarded-For字段的内容获取真实的请求来源IP。

获取方式

下文介绍不同编程语言对应的X-Forwarded-For字段获取方式。

  1. 执行以下代码查询X-Forwarded-For

    • ASP.NET(C#)
    Request.ServerVariables["HTTP_X_FORWARDED_FOR"]
    
    • ASP
    Request.ServerVariables("HTTP_X_FORWARDED_FOR")
    
    • JSP
    request.getHeader("HTTP_X_FORWARDED_FOR")
    
  • PHP
    $_SERVER["HTTP_X_FORWARDED_FOR"]
    
  1. 获取到X-Forwarded-For字段的内容后,找到第一个 IP 地址,即为真实的请求来源 IP。
    例如在X-Forwarded-For: 192.1.0.0, 172.1.0.0, 172.1.0.2中,192.1.0.0即为真实请求来源 IP。