nodejs http2 запрос - где я могу найти IP-адрес клиента

Я создаю сложный SPA, используя Polymer для репликации приложения Access. Я хочу использовать http2, чтобы избежать кошмара обслуживания при слиянии исходных файлов для получения соответствующей производительности.

Я соорудил себе запуск приложения, вход через базу данных sql server. и теперь я начинаю отлаживать вещи.

Я пытаюсь получить адрес клиента, используя ответы, которые я нашел здесь.

var ip = req.headers['x-forwarded-for'] ||
   req.connection.remoteAddress ||
   req.socket.remoteAddress ||
   req.connection.socket.remoteAddress;

но, к сожалению, в этот момент сервер падает. Копаясь с отладчиком (данный req является объектом запроса), нет ни заголовка x-forwarded-for, ни объекта соединения (кроме внутреннего сокета), и это то, что убивает этот оператор, поскольку не может получить доступ к удаленному адресу undefined. Но я не могу найти поле удаленного адреса ни в одном объекте, полученном из req.

Я использую https://github.com/molnarg/node-http2, который выглядит только реализация вокруг. В документации упоминается библиотека endpoint.js, но ссылки не работают, поэтому я понятия не имею, как получить доступ к объекту конечной точки.

Чтобы получить правильные сертификаты, я использую сертификаты с сайта pastrial.hartley-consultants.com и изменил свой домашний DNS-сервер, чтобы дать мне мою машину для разработки в качестве ее IP-адреса. Я получаю доступ к нему через браузер на той же машине. Таким образом, клиентская и серверная машины должны иметь IP-адреса 192.168.0.xx, которые просто совпадают.

Итак, вопрос в том, где IP-адрес клиента открыт для сервера (или действительно он находится в http2)


person akc42    schedule 29.12.2015    source источник
comment
не уверен, но пробовали ли вы проверить req.headers['x-real-ip']?   -  person SKY    schedule 29.12.2015
comment
единственными элементами заголовка являются accept, accept-encoding, accept-language, cookie, host, update-insecure-requests и user-agent.   -  person akc42    schedule 30.12.2015


Ответы (1)


Простой ответ: он находится в req.remoteAddress

person akc42    schedule 10.01.2016
comment
Иногда. Но иногда это ноль. - person Boris K; 21.11.2018