request.ip和request.headers之间的区别

我想获得客户端的IP地址。 我运行我的节点应用程序(expression):

var ip = request.ip 

另外我看到,可以这样做(当我在本地主机上运行我的脚本时,这是行不通的):

  var ip = request.headers['x-forwarded-for'] 

他们之间有什么(结果)区别?

通常,当请求通过HTTP代理或负载均衡器时,会设置'x-forwarded-for ”。 该字段包含标识向代理发出请求的节点。 你可以看到IETF RFC 7239 。

  • “by”标识代理的面向用户代理的界面。

  • “for”标识向代理发出请求的节点。

  • “主机”是代理收到的主机请求标题字段。

  • “proto”表示使用什么协议来进行请求。

request.ip来源于X-Forwarded-For中最左边的条目,所以它是请求的原始IP地址。 快速文档。