19195820
ip=::ffff:192.168.1.42
为什么长这样,不是192.168.1.42 吗? 大神求回答~
ip=::ffff:192.168.1.42
为什么长这样,不是192.168.1.42 吗? 大神求回答~
ipv6模式,理论上你在listen的时候填写ipv4格式的地址就可以得到你看来正常的地址了。
就这格式也没啥关系吧,用正则好了不一定非要严格相等的
学习了
找到网卡,右键点属性,把ipv6取消勾选
req.ip.match(/\d+.\d+.\d+.\d+/) 可破
6楼的方式应该可以解决
@enternoder 它返回::1 就一脸蒙逼了,是127.0.0.1 ?
@napster99 你问题里面不是获取到了么,然后通过字符串截取把前面的::ffff: 这个去掉就好啊,貌似 express 里面获取到的 ip 也是这样的,我就是截取处理的……
换一个角度讲,获取单一ip地址,在真实项目里可用性很高么?
或者可以在前面放一个nginx反向代理,通过 proxy_set_header X-Real-IP $remote_addr;
将客户端真实ip地址放到header的x-real-ip字段,然后直接从这个字段来取客户端的ip地址。
这个是ipv4到ipv6的映射地址,要取ipv4地址的话,可以指定监听0.0.0.0
http.createServer(app.callback()).listen(port, '0.0.0.0', err=> {
if (err) {
return console.log(http server init error: ${err.message});
}
console.log(http server listening at port: ${port});
});
@LinYuhong 这个诟病从express就有了,怎么解决 ?
还是自己撸框架好,至少不会骂自己
通过this.request.ip获得的。