我正在尝试记录远程客户端IP。声音基本,Express在请求对象上提供“ip”属性,如req.ip,以获取此信息。此外,还有req.ips从X-Forwarded-For获取多个IP地址,其中涉及代理。我也试过了npm模块request - ip。我的问题是它们都返回客户端IP地址,如
::ffff:A.B.C.D
其中A.B.C.D确实是我要找的地址。但是,我的问题是:那里的前缀是什么?我可以理解req.ips或X-Forwarded-用于返回多个IP地址,但即使在那里,我也希望真正的IP地址不是空值。
当然我可以得到最后一个地址,但我想知道即使在尝试获取单个req.ip地址时冒号分隔的空白条目是什么意思?
答案 0 :(得分:3)
双冒号::
是IPv6中的一个快捷方式,用于指示this Server Fault question中所说的零字符串。第一部分::fff:
是IPv4地址的前缀,作为the transition到IPv6的一部分嵌入在IPv6地址中。
::ffff:A.B.C.D
--v6-- --v4--