req.ip 和 socket.localAddress 有什么区别?
What's the difference between req.ip and socket.localAddress?
我试图了解快速 req.ip IP 地址和来自节点网络 https://nodejs.org/api/net.html#socketlocaladdress
的本地 IP 地址之间的区别
socket.localAddress的值始终是客户端连接到的服务器的IP地址(例如:192.168.1.1),req.ip的值是客户端设置的IP proxy-addr 包。
基于“信任代理”快速设置 proxy-addr 将 return socket.remoteAddress 的值或 req.headers['x-forwarded-for'] 的值如果存在且可信。
如果在您的设置中您有代理服务器并且“信任代理”为真,那么当请求进入代理时将添加 x-forwarded-for header,在本例中为 socket.remoteAddress 将是代理服务器的 IP,req.ip 将是客户端的 IP(例如:74.125.127.100),如果“信任代理”为 false,socket.remoteAddress 和 req.ip 都将是代理服务器的IP。
更多信息:
https://expressjs.com/en/guide/behind-proxies.html
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For
我试图了解快速 req.ip IP 地址和来自节点网络 https://nodejs.org/api/net.html#socketlocaladdress
的本地 IP 地址之间的区别socket.localAddress的值始终是客户端连接到的服务器的IP地址(例如:192.168.1.1),req.ip的值是客户端设置的IP proxy-addr 包。
基于“信任代理”快速设置 proxy-addr 将 return socket.remoteAddress 的值或 req.headers['x-forwarded-for'] 的值如果存在且可信。
如果在您的设置中您有代理服务器并且“信任代理”为真,那么当请求进入代理时将添加 x-forwarded-for header,在本例中为 socket.remoteAddress 将是代理服务器的 IP,req.ip 将是客户端的 IP(例如:74.125.127.100),如果“信任代理”为 false,socket.remoteAddress 和 req.ip 都将是代理服务器的IP。
更多信息:
https://expressjs.com/en/guide/behind-proxies.html
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For