1. ホーム
  2. node.js

[解決済み] Express.js:リモートクライアントアドレスを取得する方法

2022-03-16 12:08:26

質問

リモートユーザーのIPアドレスをどのように取得すればよいのか、完全に理解していません。

例えば、次のような簡単なリクエストルートがあるとします。

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

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

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

解決方法は?

NGiNX などのプロキシの後ろで動作している場合は、以下の点をチェックしてください。 'x-forwarded-for' :

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

もしプロキシが「あなたの」ものでないなら、私は 'x-forwarded-for' ヘッダは詐称される可能性があるからです。