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


Answers:


22

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


我从未见过将代理添加到现有值。有什么理由吗?
ceejayoz

4
个人经验。我已经花了很多时间来分析大型网站收到的X-Forwarded-For标头,实际上在标头中看到两个或三个IP地址并不罕见。
Mike Scott

4
但也请参阅此处的Wikipedia文章:en.m.wikipedia.org/wiki/X-Forwarded-For。它说:“该值是IP地址的逗号加空格分隔的列表,最左边的是原始客户端,传递请求的每个后续代理都添加了接收请求的IP地址。”
Mike Scott

我想知道这是否是一个特定的代理。迷人。以我的经验,nginx不会像这样处理它。
ceejayoz

1
@ceejayoz如果您使用的是像nginx这样的开源项目,并且将标头写为“ SET xff = clientIP”,它将永远不会追加。 大多数商用电器追加或组,如果属性是不可用 networkinghowtos.com/howto/...
雅各布·埃文斯

2

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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.