node获取ip地址

node如何获取访问者的ip地址。。

req.connection.remoteAddress获取到的都是127.0.0.1

阅读 9.8k
5 个回答

别看用os获取的,那是获取自己的ip,而不是获取客户的ip;
1、如果是走的代理,需要在代理的地方设置带ip的请求头,一般是x-forward-ip,然后req.headers['x-forward-ip']来获取;
2、没有代理就是你那个获取方式
我之前也碰到这个问题:https://famanoder.com:8800/bo...

var getIp=function(){
    var os=require('os'),
         ipStr,
        infaces=os.networkInterfaces(),
         bool=false;
    for(var i in infaces){
        infaces[i].some(function(x){
            if((x.family=='IPv4')&&(x.internal == false)){
                ipStr=x.address;
                bool=true;
                return true
            } 
        })
        if(bool){break}
    }
    return ipStr
}
console.log(getIp())
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题