Протокол WHOIS

WHOIS - это сетевой протокол прикладного уровня (TCP порт 43). Описан в RFC 3912. Архитектура «клиент-сервер».

Какую информацию можно получить с помощью Whois? Служит для получения регистрационных данных о владельцах:

  • доменных имён
  • IP- адресов (IPv4 and IPv6)
  • автономных систем
  • контактные данные владельца домена — e-mail, номера телефонов, названием компании-владельца

Базы данных WHOIS бывают централизованными и распределёнными. Распределённые БД позволяют регистраторам включать в записи произвольную информацию о своих клиентах.

  • Централизованные: .org, .ru
  • Распределённые: .com, .net

Протокол WHOIS создан без учета поддержки национальных языков (с кодировкой символов ASCII), стандарт не регламентирует кодировку запросов клиента и ответа сервера. В случае использования доменных имен и зон на национальном языке (например, кириллица или китайские иероглифы) используется специальный алгоритм кодирования Punycode DNS. Для избежания конфликтов с уже зарегистрированными доменами использование латинских букв в них запрещено.

Чтобы можно было не менять инфраструктуру Раздел DNS: Что такое DNS, было предложено преобразовывать имена, содержащих символы национальных алфавитов, в слова, состоящие только из допустимых ранее символов ASCII, причём делать это в клиентских приложениях. Таким образом, для поддержки IDN Интернационализованные Доменные Имена достаточно, чтобы их понимал браузер пользователя. Он должен уметь переводить их в символьную кодировку Punycode DNS, позволяющую представить любые символы Unicode с помощью разрешённого ранее набор символов ASCII. Чтобы в таком представлении IDN Интернационализованные Доменные Имена нельзя было спутать с обычными доменными именами, они начинаются со специального префикса «xn–», например, «xn–abc.com» — IDN в Punycode-представлении, а «abc.com» — обычное доменное имя. Фактически интернационализованные доменные имена являются псевдонимами для имён начинающихся с «xn–».

Строка «xn–e1afmkfd.xn–80akhbyknj4f» демонстрирует Punycode- представление для реально существующего IDN «пример.испытание»: http://пример.испытание/. В базах DNS- cерверов хранится только Punycode- представление, а в браузере можно вводить как то, так и другое. В браузерах, не поддерживающих IDN, удастся использовать только Punycode- представления IDN.

Организация ICANN утвердила несколько национальных домен верхнего уровня:

  • российский национальный кириллический домен верхнего уровня — .рф (punycode: .xn–p1ai; Российская Федерация)
  • .укр (punycode: xn–j1amh) 21 августа 2013 стал доступен первый сайт в доменной зоне .укр
  1. Корневой домен или домен нулевого уровня (англ. root domain) — домен самого верхнего уровня в любой системе доменных имён. Обслуживается корневыми серверами DNS, которые располагаются в различных странах мира.
  2. Домены первого уровня. Информацию по доменам первого уровня gTLD это общий домен верхнего уровня, ccTLD, IDN Интернационализованные Доменные Имена (com, net, ru, ua и др) предоставляет www.iana.org.

Пошаговая инструкция для нахождения всех IP вашего провайдера интернет (ISP).

$ whois -h
whois: ключ должен использоваться с аргументом -- «h»
Использование: whois [ПАРАМЕТР]... ОБЪЕКТ...
 
-l                     одноуровневый минимальный поиск [только RPSL]
-L                     найти всё при минимуме указанных совпадений
-m                     найти первый уровень при максимуме указанных совпадений
-M                     найти всё при максимуме указанных совпадений
-c                     найти наименьшее совпадение, содержащее атрибут mnt-irt
-x                     точное совпадение [только RPSL]
-d                     возвращать также реверсные делегированные объекты DNS [только RPSL]
-i АТР[,АТР]...        выполнить инверсный поиск для указанных АТРибутов
-T ТИП[,ТИП]...        поиск только объектов с типом ТИП
-K                     возвращать только основные ключи [только RPSL]
-r                     выключить рекурсивный просмотр контактной информации
-R                     всегда показывать локальную копию объекта домена даже
                       если она содержит перенаправление
-a                     искать во всех базах
-s ИСТОЧНИК[,ИСТОЧНИК]... искать в базе ИСТОЧНИКА
-g ИСТОЧНИК:ПЕРВЫЙ-ПОСЛЕДНИЙ найти обновления ИСТОЧНИКА от ПЕРВОГО до ПОСЛЕДНЕГО
-t ТИП                 запросить шаблон для объекта с типом ТИП ('all' для списка)
-v ТИП                 запросить расширенный шаблон для объекта с типом ТИП
-q [version|sources|types]  запросить указанную информацию о сервере [только RPSL]
-F                     быстрый сырой вывод (включает также -r)
-h УЗЕЛ                присоединиться к УЗЛУ
-p ПОРТ                присоединиться к ПОРТУ
-H                     скрыть правовые оговорки
      --verbose        разъяснять, что происходит
      --help           показать эту справку и закончить работу
      --version        показать информацию о версии и закончить работу

Для того чтобы найти все IPs вашего провайдера, нужно знать ваш реальный IP (или один любой IP ISP). Далее

  1. По этому IP(например 82.117.234.77) находим origin (номер автономной системы)
    $ whois -h whois.ripe.net 82.117.234.77
  2. Зная origin найдем все сети принадлежащие ему.
    whois -h whois.ripe.net -i origin AS34248 | grep route
    route:          82.117.224.0/19
    route:          85.90.192.0/19
    route:          85.90.192.0/23
    route:          85.90.192.0/24
    route:          85.90.193.0/24
    ...

    уберем лишнее

    whois -h whois.ripe.net -i origin AS34248 | grep route | awk '{print $2}'
PQ VPS сервера в 28+ странах.