2

例えば:

http.createServer(function (request, response) {
   request.on("end", function () {

   });
});

リクエストを使用して、リクエストの送信元IPを見つけるにはどうすればよいですか?

4

2 に答える 2

1

要求がプロキシ転送によるものか直接接続によるものかによって、送信元IPアドレスがさまざまな場所に保存される場合があります。req.header['x-forwarded-for']最初に確認してから確認する必要がありreq.connection.remoteAddressます。この要点に関数の例を示します。

于 2012-10-25T08:13:28.087 に答える
0

実例は次のとおりです。

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を含む配列であることに注意してください(詳細はこちらをご覧ください)。そのため、最初の要素以上のものを検査することをお勧めします。

于 2012-10-25T08:12:46.280 に答える