Express.js: リモートクライアントのアドレスを取得する方法 質問する

Express.js: リモートクライアントのアドレスを取得する方法 質問する

リモート ユーザーの IP アドレスを取得する方法が完全にわかりません。

次のような単純なリクエストルートがあるとします。

app.get(/, function (req, res){
   var forwardedIpsStr = req.header('x-forwarded-for');
   var IP = '';

   if (forwardedIpsStr) {
      IP = forwardedIps = forwardedIpsStr.split(',')[0];  
   }
});

上記のアプローチは実際のユーザーの IP アドレスを取得するのに正しいのでしょうか、それとももっと良い方法があるのでしょうか? プロキシについてはどうでしょうか?

ベストアンサー1

NGiNX などのプロキシの背後で実行している場合にのみ、次の点を確認する必要があります'x-forwarded-for'

var ip = req.headers['x-forwarded-for'] || req.socket.remoteAddress 

プロキシが「自分のもの」でない場合は、'x-forwarded-for'偽装される可能性があるため、ヘッダーを信頼しません。

おすすめ記事