Proxy X-Forwarded-For和X-Forwarded-IP之间有什么区别?

Proxy X-Forwarded-For和X-Forwarded-IP之间有什么区别?,proxy,http-headers,Proxy,Http Headers,为了在我的ASP.NET应用程序中获取客户端IP地址,我使用了X-Forwarded-For,并从列表中获取第一个IP地址(根据我找到的信息,有一个客户端,proxy1,proxy2..)。但我最近听说最好从X-Forwarded-IP报头获取此信息,因为X-Forwarded-For中的客户端IP地址可以通过代理修改,这有什么区别,我应该使用哪一个地址?是识别连接到web服务器的用户的原始IP地址的常规方法,该地址来自HTTP代理、负载均衡器 是通过HTTP邮件服务识别连接到电子邮件服务器的用

为了在我的ASP.NET应用程序中获取客户端IP地址,我使用了X-Forwarded-For,并从列表中获取第一个IP地址(根据我找到的信息,有一个客户端,proxy1,proxy2..)。但我最近听说最好从X-Forwarded-IP报头获取此信息,因为X-Forwarded-For中的客户端IP地址可以通过代理修改,这有什么区别,我应该使用哪一个地址?

是识别连接到web服务器的用户的原始IP地址的常规方法,该地址来自HTTP代理、负载均衡器


是通过HTTP邮件服务识别连接到电子邮件服务器的用户的原始IP地址的常规方法。

X-Forwarded-For是一种非标准标头,最初由Squid引入。它是一个特定于代理的头,有助于服务器识别通过代理的调用的原始请求者,因此显然,请求路径上的任何代理都应该/将修改X-Forwarded-For。如果请求路径上没有代理,则此标头甚至不应位于请求中

因为这个头是非标准的,所以不能保证您会得到它,而且它的处理方式在代理实现上可能会有所不同。您也不能保证它将包含正确的IP

自2014年以来,IETF已经批准了一个标准的代理头定义,称为“转发”,这里记录的是应该使用的,而不是X转发头。如果您的请求由代理处理,您应该可靠地使用它来获取原始IP


通常,只有当您确定代理头(Forwarded或X-Forwarded-For)通过代理到达您的客户端时,代理头(Forwarded或X-Forwarded-For)才是获取客户端IP的正确方法。如果中没有代理标头或没有可用值,则应默认使用REMOTE_ADDR server变量。

这是非常有用的信息。不幸的是,RFC的光照读数不好。这个链接更容易理解: