2015-10-14 22 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

相關問題