Этот вопрос взят из моего ежедневного интервью на github:GitHub.com/Шаншанюэ/…
Это вопрос интервью Tencent
Если естьx-forwarded-for
заголовок запроса, затем берем первый среди них IP, иначе берем remoteAddr сокета, установившего соединение.
а такжеx-forwarded-for
По сути, он стал стандартным HTTP-заголовком на основе прокси. Формат выглядит следующим образом. Видно, что первый IP-адрес представляет его реальный IP-адрес. Вы можете обратиться к MDNX-Forwarded-For
X-Forwarded-For: 203.0.113.195, 70.41.3.18, 150.172.238.178
X-Forwarded-For: <client>, <proxy1>, <proxy2>
Ниже приведеныkoa
Как получить ИП
get ips() {
const proxy = this.app.proxy;
const val = this.get(this.app.proxyIpHeader);
let ips = proxy && val
? val.split(/\s*,\s*/)
: [];
if (this.app.maxIpsCount > 0) {
ips = ips.slice(-this.app.maxIpsCount);
}
return ips;
},
get ip() {
if (!this[IP]) {
this[IP] = this.ips[0] || this.socket.remoteAddress || '';
}
return this[IP];
},
См. исходный код:GitHub.com/ смотри, о, да/ смотри, о, нет…
Подписывайтесь на меня
Отсканируйте код, чтобы добавить мой WeChat, сделайте пометку, чтобы войти в группу, присоединитесь к расширенной группе расширенного интерфейса