Мой API ошибочно сообщает, что IP-адрес GitHub Pages является частным. Как мне это исправить и получить реальный IP? - PullRequest
1 голос
/ 17 марта 2019

Я пытаюсь внести в белый список IP-адреса, которые могут получить доступ к моему API. При этом я добавил промежуточное программное обеспечение для регистрации, которое документирует IP-адреса каждого запроса API:

function loggingMiddleware(req, res, next){
    console.log(req.path+' request received from req.ip: ' + req.ip+ ', req.connection.remoteAddress: '+req.connection.remoteAddress+', req.secure: '+req.secure);
    next();
}

(Вот некоторая документация для объекта Node.js req).

Одобренным клиентом моего API является сайт, размещенный на страницах GitHub. Я знаю, что GitHub использует следующие IP-адреса для размещения сайтов на своей платформе:

  • 185.199.108.153
  • 185.199.109.153
  • 185.199.110.153
  • 185.199.111.153

Имея это в виду, когда вызывается мой API, я ожидаю, что промежуточное программное обеспечение регистрации сообщит, что один из IP-адресов в списке отправил запрос, однако это не так. Я использовал сайт GitHub Pages для отправки запроса, и была сделана следующая запись в журнале:

2019-03-16T23:43:35.094993+00:00 app[web.1]: / request received from req.ip: ::ffff:10.47.166.118, req.connection.remoteAddress: ::ffff:10.47.166.118, req.secure: false

(важная часть req.ip: ::ffff:10.47.166.118)

Этот IP-адрес является частным и не относится к страницам GitHub.

Имея все это в виду, мои вопросы таковы: как это возможно, что req.ip приводит к закрытому IP, когда я использовал страницы GitHub для выполнения запроса? Как правильно получить доступ к ожидаемому IP-адресу GitHub Pages?

...