10

これは、洗練された解決策/答えがない非常に基本的な質問のようです。

(1) サーバーまたは (2) クライアントからクライアント (リモート) IP アドレスにアクセスするにはどうすればよいですか?

4

4 に答える 4

18

クライアント 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;
于 2014-03-26T09:53:28.823 に答える
7

Florin が述べたように、これはすべて自分たちでやらなければならなかった暗黒時代とは対照的に、現在 Meteor とほぼ統合されています。ただし、開いているすべての接続を追跡し、それらの IP を照会できるようにするパッケージに追加でラップしました: https://github.com/mizzao/meteor-user-status。また、他にもたくさんの便利なことを行います。

于 2014-06-05T12:30:03.447 に答える
2

クライアント上

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;
    },
});
于 2013-09-03T08:07:53.233 に答える