Обозначение IPV6 $ _SERVER[& #39;REMOTE _ADDR& #39;]

У меня есть много проектов с функциями, основанными на 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-адресов.

5
задан Tchoupi 25 April 2012 в 15:29
поделиться