2017-11-17 2 views
0

私はExpressのJSとクライアントのIPアドレスを取得しようとしていますが、リモートクライアントのIPアドレスNodeJSを取得し、コードは次のとおりです。、ExpressJs

var ip; 
if (req.headers['x-forwarded-for']) { 
    ip = req.headers['x-forwarded-for'].split(",")[0]; 
} else if (req.connection && req.connection.remoteAddress) { 
    ip = req.connection.remoteAddress; 
} else { 
    ip = req.ip; 
} 
ip = (ip.length < 15 ? ip : (ip.substr(0, 7) === '::ffff:' ? ip.substr(7) : undefined)); 


console.log('ip address',ip); 

しかし、毎回私が取得していますローカルホストのIPアドレスではないパブリックIPアドレス 、 どうすればlocalhostのIPアドレスの代わりにパブリックIPアドレスを取得できますか? 誰でも私を助けてくれますか?

ありがとうございます。

+1

チェックサーバインフラストラクチャは、ロードバランサ、プロキシ、などを持っています...あなたの実際のサーバの前で、上記のローカル値は、クライアントが最初に接続した実際のパブリックIP /ポートではなく、ローカルサーバを返します。 –

答えて