色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

node.js怎么獲取訪問者的內(nèi)網(wǎng)ip?

錢多多2年前15瀏覽0評論

臣妾做不到

不僅是Nodejs做不到,任何網(wǎng)絡(luò)技術(shù)都不能做到

因?yàn)樵L問者的內(nèi)網(wǎng)ip,在經(jīng)過路由器的時候會做網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT),經(jīng)過轉(zhuǎn)換的IP已經(jīng)是公網(wǎng)IP了,所以只能獲取到訪問者公網(wǎng)的IP.

Nodejs獲取客戶端公網(wǎng)IP的方法主要分為這幾種情況:

  • Nodejs直接暴露服務(wù)

  • 反向代理

因?yàn)橹虚g加了一層反向代理轉(zhuǎn)發(fā),所以

req.socket.remoteAddress

只能獲取道反向代理的IP,這不是我們想要的.所以需要在反向代理轉(zhuǎn)發(fā)數(shù)據(jù)時增加一個HTTP頭x-real-ip,這里以nginx為例,需要配置:

proxy_set_headerX-Real-IP$remote_addr

在Nodejs可以使用X-Real-IP頭獲取IP


在多層反向代理中需要除了暴露在公網(wǎng)的nginx設(shè)置x-real-ip頭,其他后面都不要設(shè)置