NODEJS的请求对象提供了这个方法req.connection.remoteAddress来获取客户端的IP地址,但它以IPV6格式给出地址,如何将其转换为更易读的IPV4格式?
NODEJS的请求对象提供了这个方法req.connection.remoteAddress来获取客户端的IP地址,但它以IPV6格式给出地址,如何将其转换为更易读的IPV4格式?
::ffff:
前缀)。0.0.0.0
表示“仅限IPv4”,而默认的::
表示IPv6 + IPv4。server.listen({
port: 80,
host: '0.0.0.0',
})
对于WebSockets:
...listen(80, '0.0.0.0');
::ffff:
开头,则客户端正在使用IPv4与IPv6应用程序通信。在这种情况下,地址的其余部分是IPv4地址。它可能被写成::ffff:10.11.12.13
,在这种情况下,您可以轻松地看到IPv4地址。它也可以写成::ffff:0a0b:0c0d
或::ffff:a0b:c0d
,在这种情况下,您需要将地址的最后一部分从十六进制转换为十进制。::ffff:
开头,则客户端确实正在使用IPv6进行通信,并且无法进行转换,因为IPv4和IPv6是具有不同地址的不同协议。系统可以只有IPv4,只有IPv6或两者都有。通过查看地址,你无法知道它们之间的差异。