回覆列表
  • 1 # 夢星辰203

    exports.getClientIP = function(req){

    var ip = "";

    var headers = req.headers;

    var ipStr = headers[‘x-real-ip’] || headers[‘x-forwarded-for’];

    ipStr ? ip = ipStr : ip = "";

    if (!ip) {

    ip = req.connection.remoteAddress;

    }

    return ip;

    }

    這個方法一般情況可以獲取到

  • 2 # 廖亮

    臣妾做不到

    不僅是Nodejs做不到,任何網路技術都不能做到

    因為訪問者的內網ip,在經過路由器的時候會做 網路地址轉換(NAT),經過轉換的IP已經是公網IP了,所以只能獲取到訪問者公網的IP.

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

    Nodejs直接暴露服務

    proxy_set_header X-Real-IP $remote_addr

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

    在多層反向代理中需要除了暴露在公網的nginx設定x-real-ip頭,其他後面都不要設定

  • 中秋節和大豐收的關聯?
  • 怎麼綁吊墜方法與步驟圖解?