X-FORWARDED-FOR 可以包含多个 IP

Has*_*aig 20 http http-headers

可以X-FORWARDED-FOR包含多个IP地址吗?如果是这样,为什么?一个说明性的例子会很棒。

Mik*_*ott 28

是的,如果一个请求通过多个代理服务器链接,那么每个代理都应该将前一个的 IP 添加到现有的 X-Forwarded-For 标头中,以便保留整个链。

  • 个人经验。我花了很多时间分析大型网站收到的X-Forwarded-For headers,在header中看到两三个IP地址其实并不少见。 (5认同)
  • 但也可以在这里查看维基百科文章:https://en.m.wikipedia.org/wiki/X-Forwarded-For。它说“该值是一个以逗号+空格分隔的 IP 地址列表,最左边是原始客户端,并且每个传递请求的后续代理都添加了从其接收请求的 IP 地址”。 (4认同)

小智 10

来自https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For

X-Forwarded-For: <client>, <proxy1>, <proxy2>

如果请求经过多个代理,则会列出每个连续代理的 IP 地址。这意味着,最右侧的 IP 地址是最近代理的 IP 地址,最左侧的 IP 地址是始发客户端的 IP 地址。

例子:

X-Forwarded-For: 2001:db8:85a3:8d3:1319:8a2e:370:7348

X-Forwarded-For: 203.0.113.195

X-Forwarded-For: 203.0.113.195, 70.41.3.18, 150.172.238.178
Run Code Online (Sandbox Code Playgroud)