これは、洗練された解決策/答えがない非常に基本的な質問のようです。
(1) サーバーまたは (2) クライアントからクライアント (リモート) IP アドレスにアクセスするにはどうすればよいですか?
これは、洗練された解決策/答えがない非常に基本的な質問のようです。
(1) サーバーまたは (2) クライアントからクライアント (リモート) IP アドレスにアクセスするにはどうすればよいですか?
クライアント IP の取得:
http リクエストがなければ、関数で次のように clientIP を取得できるはずです。
clientIP = this.connection.clientAddress;
//EX: you declare a submitForm function with Meteor.methods and
//you call it from the client with Meteor.call().
//In submitForm function you will have access to the client address as above
http リクエストを使用し、iron-router とその Router.map 関数を使用する場合:
ターゲット ルートのアクション関数で次を使用します。
clientIp = this.request.connection.remoteAddress;
Florin が述べたように、これはすべて自分たちでやらなければならなかった暗黒時代とは対照的に、現在 Meteor とほぼ統合されています。ただし、開いているすべての接続を追跡し、それらの IP を照会できるようにするパッケージに追加でラップしました: https://github.com/mizzao/meteor-user-status。また、他にもたくさんの便利なことを行います。
クライアント上
headers = {
list: {},
get: function(header, callback) {
return header ? this.list[header] : this.list;
}
}
Meteor.call('getReqHeaders', function(error, result) {
if (error) {
console.log(error);
}
else {
headers.list = result;
}
});
サーバー上:
headers = {
list: {},
get: function(header) {
return header ? this.list[header] : this.list;
}
};
var app = typeof WebApp != 'undefined' ? WebApp.connectHandlers : __meteor_bootstrap__.app;
app.use(function(req, res, next) {
reqHeaders = req.headers;
return next();
});
Meteor.methods({
'getReqHeader': function(header) {
return reqHeaders[header];
},
'getReqHeaders': function () {
return reqHeaders;
},
});