从 Meteor 中的请求对象获取 IP 地址
Get IP address from request object in Meteor
我想在将客户端重定向到外部 URL 之前检索客户端的 IP 地址。
这是我的代码:
Router.route('/:_id', {name: 'urlRedirect', where: 'server'}).get(function () {
var url = Urls.findOne(this.params._id);
if (url) {
var request = this.request;
var response = this.response;
var headers = request.headers;
console.log(headers['user-agent']);
this.response.writeHead(302, {
'Location': url.url
});
this.response.end();
} else {
this.redirect('/');
}
});
我的问题是:我可以从 request
对象获取 IP 地址吗?
根据 the Iron-Router guide,您从 this.request
获得的请求将是一个典型的 NodeJS 请求对象:
Router.route('/download/:file', function () {
// NodeJS request object
var request = this.request;
// NodeJS response object
var response = this.response;
this.response.end('file download content\n');
}, {where: 'server'});
因此您应该能够在 this.request.connection.remoteAddress
中向上循环 IP 地址。
如 this answer 所述,在某些情况下您可能还需要查看 this.request.headers['x-forwarded-for']
。
我想在将客户端重定向到外部 URL 之前检索客户端的 IP 地址。
这是我的代码:
Router.route('/:_id', {name: 'urlRedirect', where: 'server'}).get(function () {
var url = Urls.findOne(this.params._id);
if (url) {
var request = this.request;
var response = this.response;
var headers = request.headers;
console.log(headers['user-agent']);
this.response.writeHead(302, {
'Location': url.url
});
this.response.end();
} else {
this.redirect('/');
}
});
我的问题是:我可以从 request
对象获取 IP 地址吗?
根据 the Iron-Router guide,您从 this.request
获得的请求将是一个典型的 NodeJS 请求对象:
Router.route('/download/:file', function () {
// NodeJS request object
var request = this.request;
// NodeJS response object
var response = this.response;
this.response.end('file download content\n');
}, {where: 'server'});
因此您应该能够在 this.request.connection.remoteAddress
中向上循环 IP 地址。
如 this answer 所述,在某些情况下您可能还需要查看 this.request.headers['x-forwarded-for']
。