リモート ユーザーの 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'
偽装される可能性があるため、ヘッダーを信頼しません。