Meteor-如何在Helper中获取当前访问者的IP地址

Meteor-如何在Helper中获取当前访问者的IP地址,meteor,Meteor,我尝试使用这种方法,但是没有定义clientIpAddress变量的值 Meteor.methods({ getClientIpAddress: function () { return this.connection.clientAddress; } }); Template.home.helpers({ starsAlreadyReceivedFromIpAddress: function () { var clientIpAddre

我尝试使用这种方法,但是没有定义clientIpAddress变量的值

Meteor.methods({
    getClientIpAddress: function () {
        return this.connection.clientAddress;
    }
});

Template.home.helpers({
    starsAlreadyReceivedFromIpAddress: function () {
        var clientIpAddress;
        Meteor.call("getClientIpAddress", function(err, ipAddress) {
           clientIpAddress = ipAddress;
        });
        console.log(clientIpAddress);
        ....
    }
});

如果有人能在这方面帮助我,我将不胜感激

查看
用户状态


这将为您提供
Meteor.user().status.lastLogin.ipAddr
,您可以在助手中使用它(首先确保该字段已发布)。

您的答案非常有效。谢谢你快速准确的回复。事实上,杰里米,我有个问题。。。除非用户登录,否则该代码不起作用。我正在使用帐户密码包。对于已登录的用户,我会获得ip地址,但对于未登录的访问者,我不会获得ip地址。你能帮我吗……啊,我明白了。对不起,我对用户和访问者的区别不敏感。实际上,从服务器返回this.connection.clientAddress的方法是正确的。但是,您不应该从帮助器调用该方法。从助手使用Meteor.call是一种不好的模式,但另外,在您的情况下,它将异步运行,但在结果返回后不会重新运行,因为它不是反应数据源。取而代之的是,从代码中的其他地方(在执行操作之前在路由器中)进行调用,并将结果保存到可以在助手中访问的变量中。好的,这听起来是一个不错的解决方案。我会实施的。非常感谢您回复我的评论,并为我提供了解决问题的积极方向。