2015-10-14 21 views
1

我正在尝试登录远程客户端IP。听起来很基本,Express在请求对象上提供了“ip”属性,就像在req.ip中一样,以获得这个信息。此外,还有req.ips需要从X-Forwarded-For多个IP地址中获取代理所涉及的地址。我也尝试了npm模块request -ip。我的问题是,它们都返回客户端的IP地址作为为什么node/Express中的req.ip返回冒号分隔的IP地址?

::ffff:A.B.C.D 

其中A.B.C.D确实是我要找的地址。但是,我的问题是:那里有什么前缀?我可以理解req.ips或X-Forwarded-为了返回多个IP地址,但即使在那里,我也希望真正的IP地址不是空值。

当然,我可以得到最后一个地址,但我想知道冒号分隔的空白条目是什么意思,即使试图获得单个req.ip地址?

+1

看起来您正在获取IPv6地址,就这些。 –

+0

@Edwin Dalorzo多数民众赞成它!如果您发布这个答案,我会接受它。我想,如果采用IPv4格式,必须有一些方法可行,但更重要的是,我想知道输出结果是什么,并且您回答了这个问题。 – Sam

回答

1

双冒号::是IPv6中的一个快捷方式,用于指示this Server Fault question中提到的一串零。第一部分::fff:是作为the transition到IPv6的一部分嵌入到IPv6地址中的IPv4地址的前缀。

::ffff:A.B.C.D 
--v6-- --v4-- 
+0

我upvoted你的答案。如果埃德温达罗佐没有回答问题,我会接受你的回答。他首先发布了答案,尽管作为评论。 – Sam

+0

他确实做到了。听起来不错。 – carpenter

相关问题