例えば:
http.createServer(function (request, response) {
request.on("end", function () {
});
});
リクエストを使用して、リクエストの送信元IPを見つけるにはどうすればよいですか?
要求がプロキシ転送によるものか直接接続によるものかによって、送信元IPアドレスがさまざまな場所に保存される場合があります。req.header['x-forwarded-for']
最初に確認してから確認する必要がありreq.connection.remoteAddress
ます。この要点に関数の例を示します。
実例は次のとおりです。
var http = require('http');
var getClientIp = function(req) {
var ipAddress = null;
var forwardedIpsStr = req.headers['x-forwarded-for'];
if (forwardedIpsStr) {
ipAddress = forwardedIpsStr[0];
}
if (!ipAddress) {
ipAddress = req.connection.remoteAddress;
}
return ipAddress;
};
var server = http.createServer();
server.on('request', function(req, res) {
console.log(getClientIp(req));
res.writeHead(200, {'Content-Type': 'text/plain'});
return res.end('Hello World\n');
});
server.listen(9000, 'localhost');
getClientIp
関数はここからいくつかの小さな変更を加えて取得されました。の内容はx-forwarded-for
プロキシIPを含む配列であることに注意してください(詳細はこちらをご覧ください)。そのため、最初の要素以上のものを検査することをお勧めします。