У меня есть https Meteor webapp, размещенный на modulus.io. Следуя советам здесь, у меня есть серверный метод:

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

Я вызываю это из консоли браузера на живом сайте:

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

Но это всегда возвращает IP-адрес балансировщика нагрузки Modulus 54.236.216.66.

.

Как я могу получить доступ к IP-адресу клиента вместо IP-адреса балансировщика нагрузки?

Спасибо!

Ответы (1)

После некоторых экспериментов я нашел решение:

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;
      }
   }
});

2022 WebDevInsider