REMOTE_ADDR возвращает 2 IPv4 вместо одного

Я храню IP-адреса в БД, которая раньше работала в char (15), в последнее время я получаю все больше и больше IP-адресов, которые выглядят так:

«172.29.93.25, 94.56.207.248»

Большинство записей выглядит хорошо, хотя. Это менее 1% всех случаев.

Команда, которую я использую:

$ip = $_SERVER['REMOTE_ADDR']

Приведенный выше IP не похож на IPv6 для меня, а скорее на два IPv4, разделенных запятой. Как это возможно?

2

Решение

Первый IPv4-адрес, вероятно, является внутренним IP-адресом балансировщика нагрузки. Второй IPv4-адрес, вероятно, является IP-адресом клиента и, вероятно, был включен балансировщиком нагрузки в X-Forwarded-For заголовок http.

Обновить:

Я вижу, вы отредактировали вопрос и заменили пример на 10.x.x.x IP-адрес с новым примером, который имеет 172.x.x.x Айпи адрес. В этом новом случае первым IP-адресом может быть прокси-сервер. В общем случае в этом поле можно указать список IP-адресов, разделенных запятыми, который может быть произвольно длинным, и он представляет все прокси и балансировщики нагрузки, через которые прошел запрос. Последний IP-адрес — это IP-адрес клиента.

4

Другие решения

Первый адрес 10.10 адрес, то есть это адрес без маршрутизации. Либо это балансировщик нагрузки, либо у вас есть виртуальная машина (например, Amazon AWS) с непубличным адресом, который подключается к Интернету через некоторый шлюз.

1

Первый адрес является частным адресом, вы можете узнать о распределение адресов для частных интернетов здесь.

1
По вопросам рекламы [email protected]