使用 Modulus 从 Meteor 访问客户端的 IP 地址(不是负载均衡器的)

Access client's IP address (not the load balancer's) from Meteor, with Modulus

我在 modulus.io. Following the advice here 上托管了一个 https Meteor webapp 我有一个服务器方法:

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

我在实时站点上从我的浏览器控制台调用它:

Meteor.call('printIP', function(err, ip) { console.log(ip); })

但这总是returns Modulus的load balancer的IP地址,54.236.216.66.

如何访问客户端的 IP 地址而不是负载均衡器的 IP 地址?

谢谢!

通过一些实验,我找到了一个解决方案:

Meteor.methods({
   printIP: function() {
      if (this.connection.httpHeaders && this.connection.httpHeaders['x-forwarded-for']) {
         return this.connection.httpHeaders['x-forwarded-for'];
      } else {
         return this.connection.clientAddress;
      }
   }
});