Новости

Поддержка IPv6 на всех эндпоинтах

IPv6 больше не редкость. Всё большая доля трафика, приходящего сегодня на любой API, поступает с адресов IPv6, и если относиться к нему по остаточному принципу, пробелы появляются именно там, где важна точность. Теперь My Geocode обрабатывает IPv6 так же, как IPv4, везде, а не только в эндпоинте /v1/ip.

Отправьте адрес IPv6 на /v1/ip, и вы получите ответ той же структуры, что и для адреса IPv4: поля местоположения, заголовки квоты, а с mg_extras=1 или заголовком X-MG-Extras те же дополнительные данные, например сведения об угрозах и сети. Нет отдельного эндпоинта IPv6, который нужно осваивать, и нет отдельной документации. Это тот же поиск, те же заголовки, те же правила.

Бесплатный лимит тоже одинаково относится к обоим семействам адресов, просто с группировкой, которая соответствует тому, как каждое из них реально выделяется. Адреса IPv4 делят бесплатный дневной лимит на всю сеть /24, к которой они принадлежат. Адреса IPv6 делят свой на всю сеть /48, а это размер блока, который интернет-провайдер обычно выдаёт одному клиенту или одной площадке. Значит, лимит по-прежнему соответствует чему-то вроде «одного места» или «одного офиса», а не считает каждый адрес в гораздо большем блоке IPv6 отдельным клиентом.

Эта последовательность распространяется и на совместимые хосты. /compatibility/ip-api/, /compatibility/ipinfo/ и /compatibility/ipstack/ обрабатывают адреса IPv6 так же, как адреса IPv4, в точном формате запроса и ответа того поставщика, которого они заменяют. Скрипт, написанный годы назад для одного из этих поставщиков и направленный на наш хост, продолжит работать, как только во входных данных появится адрес IPv6, без каких-либо изменений кода с вашей стороны.

Помимо самой IP-геолокации, поддержка IPv6 важна для всего, что незаметно опирается на сетевую идентификацию. Лимит запросов, учёт квоты и обнаружение злоупотреблений основаны на адресе вызывающей стороны, и все они теперь правильно распознают диапазоны IPv6, а не прибегают к приблизительным догадкам. В результате справедливость и точность одинаковы, какой бы протокол ни использовал конкретный клиент.

Если ваша инфраструктура работает в режиме dual-stack или местами переходит только на IPv6, на нашей стороне ничего дополнительно настраивать не нужно. Отправляйте запросы на тот же базовый URL, что и раньше, с клиентского адреса IPv4 или IPv6, и ответ вернётся точно так же. Подробности об обоих семействах адресов описаны на страницах /docs/ipv4-lookup/ и /docs/ipv6-lookup/.