У меня есть много проектов с функциями, основанными на IP-адресах, предоставляемых $_SERVER['REMOTE_ADDR]
, $_SERVER['HTTP_X_FORWARDED_FOR']
и $_SERVER['CLIENT_IP']
.
Адреса IPV4 легко сопоставить, поскольку мы всегда получаем их в одном и том же формате. :4 целых числа без начальных нулей, разделенных точкой .
.
В то время как адреса IPV6 могут быть сжаты. Пример :FF01 :0 :0 :0 :0 :0 :0 :101 -> FF01 ::101
Я исследовал эту проблему, но не нашел ничего подходящего, поэтому я прошу вашего опыта. Использует ли $_SERVER['REMOTE_ADDR]
стандарт? Можно ли предположить, что он всегда будет приниматься в сжатом или несжатом виде?
Или мне следует сжать всю строку IPV6, прежде чем пытаться их протестировать?
Примечание.:
В идеале я хотел бы обрабатывать адреса IPV6 в виде строк, а не двоичной структуры, чтобы улучшить читаемость в базах данных/исходном коде и упростить сопоставление диапазонов IP-адресов.