Обнаружить IPv6 в PHP? - PullRequest
       60

Обнаружить IPv6 в PHP?

6 голосов
/ 21 марта 2011

В настоящее время я определяю IPv4-адрес пользователя и использую блоки IP с v4. Однако я хочу захватить IPv6 и иметь списки блокировки для этого тоже, поэтому вопрос: Это та же логика, чтобы получить IPv6 как IPv4 или что-то другое в PHP? Я просто не уверен, есть ли у каждого устройства IPv4 и IPv6 или это одно из них, и система автоматически определит, какой это формат, и сохранит его?

1 Ответ

6 голосов
/ 21 марта 2011

Apache сообщает REMOTE_ADDR в PHP. Если Apache прослушивает интерфейс v6, это будет адрес v6.

Легко дифференцировать. Адреса IPv4 всегда будут иметь символ . полной точки, а адреса IPv6 всегда будут содержать двоеточие :.

При создании списков (или белых списков) вы должны быть осторожны с адресами v6. Они могут быть сокращены с помощью двух последовательных двоеточий ::. Нет никакой гарантии, что ваша ОС будет использовать более короткую или полную форму, поэтому ваш скрипт должен с этим справиться. Проверьте страницу IPv6 в Википедии для деталей.

...