我試圖了解 express req.ip IP 地址和來自節點網路https://nodejs.org/api/net.html#socketlocaladdress的本地 IP 地址之間的區別
uj5u.com熱心網友回復:
socket.localAddress 的值始終是客戶端連接的服務器的 IP 地址(例如:192.168.1.1),req.ip 的值是由proxy-addr包設定的客戶端 IP。
基于“信任代理”快速設定,proxy-addr 將回傳 socket.remoteAddress 的值或來自 req.headers['x-forwarded-for'] 的值(如果存在且受信任)。
如果在您的設定中您有一個代理服務器并且“信任代理”為真,那么當請求進入代理時,代理將添加 x-forwarded-for 標頭,在這種情況下,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
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/453171.html
