0

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

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

5个回答

0

已采纳

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

0
0

os.networkInterfaces()
参考这里:http://nodejs.org/api/os.html...

0

这个问题回答起来有点麻烦,可以写篇文章了,贴篇链接,楼主可以参考下 https://imququ.com/post/x-for...

0
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())

撰写答案