request.ip和request.headers之间的区别[' x-forwarded-for']

时间:2016-10-30 12:53:42

标签: node.js express

我想要获取客户端的IP。我运行我的节点app(express):

 var ip = request.ip

此外,我看到可以这样做(当我在localhost上运行脚本时,它不起作用):

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

它们之间的(结果)区别是什么?

1 个答案:

答案 0 :(得分:1)

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

  
      
  • "由"标识代理的面向用户代理的接口。

  •   
  • "对于"标识向代理发出请求的节点。

  •   
  • "主机"是代理收到的主机请求标头字段。

  •   
  • "原"表示用于发出请求的协议。

  •   

request.ip派生自X-Forwarded-For中最左边的条目,因此它是请求的原始IP地址。 Express doc.