我有一个在NodeJS上运行的express Centos服务,并监听GET请求,我需要标识用户的IP。

目前,我正在使用此脚本

ip = req.headers['x-forwarded-for'] ||
      req.connection.remoteAddress ||
      req.socket.remoteAddress ||
      req.connection.socket.remoteAddress

问题在于,有时返回的IP是IPv4,有时是IPv6。有没有办法只获取IPv4 IP?

最佳答案

更新

根据Micheal的评论,如果客户端通过ipv6连接,则不会有ipv4地址,因此您必须准备好接受ipv6。

在服务器上监听时指定ipv4,请参见doc

.listen(port, '0.0.0.0');

关于node.js - 通过NodeJS Express仅获取IPv4 ips,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50855419/

10-14 02:21