This article is available in Russian only. English translation is not yet available.
Сети

Как узнать IP-адрес сайта

IP-адрес сайта получают из DNS, но один домен может вести на несколько узлов, а CDN способен менять ответ в зависимости от сети пользователя.

Браузеру нужно преобразовать имя сайта в сетевой адрес. Обычно он получает IPv4 из DNS-записи A, IPv6 из записи AAAA либо сначала следует по CNAME к другому имени. Поэтому вопрос «какой IP у сайта» не всегда имеет один постоянный ответ: адресов может быть несколько, а CDN и балансировщики способны выбирать их с учётом сети и расположения клиента.

Для быстрой проверки введите домен в инструмент DNS и посмотрите записи A и AAAA. Указывайте только имя, например www.example.com, а не https://www.example.com/catalog. Схема, путь и порт относятся к HTTP, но не к DNS-имени.

Какие записи дают адрес

Запись A сопоставляет имя с 32-битным IPv4-адресом. Запись AAAA содержит 128-битный IPv6-адрес. Если у имени опубликован CNAME, DNS-клиент продолжает разрешение канонического имени и получает адрес уже для него.

У домена верхнего уровня сайта и поддомена www могут быть разные ответы. Например, example.com способен вести на один сервис, а www.example.com - через CNAME на CDN. Проверять нужно ровно то имя, которое указано в адресной строке. Также отдельный API-поддомен может находиться в другой сети, чем основной сайт.

DNS-ответ - это не перечень всей инфраструктуры. Публичный адрес может принадлежать обратному прокси, CDN или балансировщику, за которым скрыты исходные серверы. Попытка «найти настоящий IP» в обход такой архитектуры ненадёжна и может нарушать правила владельца системы. Для штатной диагностики достаточно опубликованной точки входа.

Команды dig и nslookup

В системах с dig запросите оба семейства адресов отдельно:

dig example.com A +short
dig example.com AAAA +short

Ключ +short оставляет только значения. Для диагностики уберите его: полный вывод покажет код ответа, TTL, использованный DNS-сервер и возможный CNAME. Команды выполняют обычные DNS-запросы и не меняют настройки домена.

В Windows и других системах, где доступен nslookup, используйте:

nslookup -type=A example.com
nslookup -type=AAAA example.com

Вывод может содержать адрес самого DNS-сервера, а затем блок ответа. Не перепутайте эти значения. Строка Server или Address в начале часто описывает резолвер, через который выполнена проверка, а искомые адреса относятся к запрошенному имени ниже.

В Windows PowerShell есть структурированная команда:

Resolve-DnsName example.com -Type A
Resolve-DnsName example.com -Type AAAA

На Linux системное разрешение имени, учитывающее локальные правила из nsswitch.conf, можно посмотреть так:

getent ahosts example.com

Результат getent и прямой DNS-запрос могут различаться из-за файла hosts, локального кеша или корпоративной конфигурации. Это полезный диагностический сигнал: браузер и приложения часто используют системный механизм, а dig обращается к DNS напрямую.

Практический пример: сайт работает не у всех

Представим, что после настройки нового хостинга сайт открывается из мобильной сети, но не из офисной.

  1. Запросите A и AAAA из обеих сетей и запишите время проверки.
  2. Посмотрите полную цепочку CNAME, если она есть. Конечное имя может иметь собственный TTL и набор адресов.
  3. Сравните результат с авторитетными серверами домена. Их можно узнать запросом NS, а затем выполнить dig @<authoritative-server> www.example.com A.
  4. Если офисный рекурсивный сервер возвращает старое значение, проверьте оставшийся TTL и дождитесь нормального истечения кеша либо обратитесь к его администратору.
  5. Если различается только AAAA, временное отключение IPv6 на клиенте может подтвердить направление диагностики, но постоянным исправлением должна быть корректная DNS- и серверная конфигурация, а не отказ от IPv6 без анализа.

Сравнивать нужно не только наличие адреса, но и ожидаемость ответа. Несколько адресов CDN не обязаны совпадать между сетями. Если поставщик документирует такой режим, различие нормально. А вот старый адрес, оставшийся только на одном из авторитетных NS, указывает на несогласованность зоны.

Почему ping не даёт полного ответа

Команда ping example.com обычно показывает IP, который система выбрала для ICMP-пакетов. Это быстрый способ увидеть одно разрешённое значение, но не надёжная проверка сайта. Сервер или межсетевой экран может блокировать ICMP и при этом нормально обслуживать HTTPS. Наоборот, ответ на ping не подтверждает работу веб-приложения и корректность сертификата.

При нескольких A или AAAA ping часто выбирает только один адрес. Повторный запуск может использовать тот же системный кеш. Для инвентаризации опубликованных DNS-значений лучше запросить записи явно, а доступность веб-сервиса проверять отдельно через проверку сайта.

Что можно узнать по найденному IP

По адресу можно запросить сведения о выделенном диапазоне и ориентировочную геолокацию через проверку IP. Это данные о сетевой регистрации и оценка местоположения инфраструктуры, а не точный физический адрес сервера или владельца сайта. Облачные платформы обслуживают многих клиентов на общих диапазонах, а anycast позволяет одному адресу объявляться из нескольких точек.

Обратная DNS-проверка может вернуть PTR-имя. Его задаёт сторона, управляющая обратной зоной адреса, часто хостер или оператор сети. PTR не обязан совпадать с доменом сайта и не доказывает принадлежность ресурса. На одном IP может работать множество сайтов с разными именами благодаря HTTP-заголовку Host и TLS SNI.

Частые ошибки

  • Проверять только A и игнорировать AAAA, хотя часть клиентов предпочитает IPv6.
  • Считать адрес DNS-резолвера в выводе nslookup адресом сайта.
  • Делать вывод о владельце сайта по оператору IP-диапазона.
  • Ожидать неизменный ответ от CDN или DNS-балансировки.
  • Вводить URL целиком вместо точного имени узла.
  • Считать отсутствие ping-ответа доказательством недоступности HTTPS.
  • Подключаться к HTTPS напрямую по IP и ожидать корректный сертификат: виртуальный хост выбирается по имени, а сертификат обычно выпущен для DNS-имени.

Если результат нужен для настройки allowlist, не копируйте случайно увиденный адрес без подтверждения владельца сервиса. У SaaS и CDN диапазоны меняются; используйте официально опубликованные диапазоны поставщика или поддерживаемый им способ интеграции. Одноразовая DNS-проверка показывает состояние на момент запроса, а не гарантированный будущий список.

Частые вопросы

Может ли у одного сайта быть несколько IP-адресов?

Да. DNS может вернуть несколько A- и AAAA-записей, а CDN или балансировщик может давать разные допустимые ответы разным пользователям. Набор адресов также способен меняться со временем.

Почему ping и DNS-проверка показывают разные результаты?

Команды могли обратиться к DNS в разное время, выбрать разные адреса из набора или использовать разные сетевые пути и кеши. Кроме того, ping показывает выбранный адрес для ICMP-проверки, но отсутствие ответа ICMP не означает, что веб-сайт недоступен.

Можно ли по IP-адресу точно определить владельца и местоположение сайта?

Нет. Регистрационные и географические данные относятся прежде всего к сетевому ресурсу и его оператору, а не обязательно к владельцу сайта. CDN, облачный хостинг, прокси и anycast дополнительно ограничивают точность такой интерпретации.

Check it in practice

Related terms

ASN

Sources

  1. RFC 1034: Domain Names - Concepts and Facilities
  2. RFC 3596: DNS Extensions to Support IP Version 6
  3. RFC 4291: IP Version 6 Addressing Architecture
  4. MDN: What is a domain name?

Как проверить DNS-записи домена

Разбираем, где смотреть DNS-записи, как отличить авторитетный ответ от кешированного и какие ошибки не следует принимать за поломку DNS.

Что такое PTR-запись и обратный DNS

PTR используется для обратного DNS-поиска, но не является доказательством владельца IP и настраивается обычно у оператора адресного диапазона.

IPv4 и IPv6: в чём разница

IPv4 и IPv6 различаются адресным пространством и работой протокола, а совместимость зависит от DNS, выбора адреса и реальной доступности сервера.