Комментарии 31
Ты whois, давай до свидания…
Автору спасибо, много интересного из простой вещи.
Автору спасибо, много интересного из простой вещи.
-11
Фундаментально! И читается как детектив.
Автору — респект.
Автору — респект.
+8
Отличная статья. Самому всегда было лень разобраться, гугл не давал ответа, но теперь многие непонятности стали понятны.
+4
Посмотрите на pwhois, фактически это обвязка для перлового модуля Net::Whois::Raw, про зону UA он точно знает, причём в нём есть whois-сервера и многих зон 3-го уровня:
COM.UA whois.com.ua
ORG.UA whois.com.ua
BIZ.UA whois.biz.ua
CO.UA whois.co.ua
PP.UA whois.pp.ua
KIEV.UA whois.com.ua
DN.UA whois.dn.ua
LG.UA whois.lg.ua
OD.UA whois.od.ua
IN.UA whois.in.ua
В федоре whois является ссылкой на jwhois, а иногда попадается что whois является ссылкой и на pwhois.
COM.UA whois.com.ua
ORG.UA whois.com.ua
BIZ.UA whois.biz.ua
CO.UA whois.co.ua
PP.UA whois.pp.ua
KIEV.UA whois.com.ua
DN.UA whois.dn.ua
LG.UA whois.lg.ua
OD.UA whois.od.ua
IN.UA whois.in.ua
В федоре whois является ссылкой на jwhois, а иногда попадается что whois является ссылкой и на pwhois.
0
pwhois/Net::Whois::Raw посмотрел — благодарю за ссылку.
Он работает так же, как и Ruby Whois: огромный конфигурационный файл с хардкодом на все случаи жизни (порядка 70КБ). На CPAN последнее обновление — август 2012 года.
Пробуем примеры из моей статьи:
Всего не захардкодить.
Что меня заинтересовало: захардкоджено много сообщений с разных серверов о том, что «Lookup quota exceeded». В Ruby Whois они тоже есть, но там информация раскидана по разных файлам (для каждого whois сервера), и ее трудно найти, а тут все в одном месте. Получается, что пользователей банят не только RIPE и AfriNIC, но и целый ряд других whois серверов (на практике я с этим раньше не встречался):
Он работает так же, как и Ruby Whois: огромный конфигурационный файл с хардкодом на все случаи жизни (порядка 70КБ). На CPAN последнее обновление — август 2012 года.
Пробуем примеры из моей статьи:
$ ./pwhois 8.8.8.8
[whois.arin.net]
Level 3 Communications, Inc. LVLT-ORG-8-8 (NET-8-0-0-0-1) 8.0.0.0 - 8.255.255.255
Google Incorporated LVLT-GOOGL-1-8-8-8 (NET-8-8-8-0-1) 8.8.8.0 - 8.8.8.255
$ ./pwhois russia.edu.ru
[whois.ripn.net]
No entries found for the selected source(s).
Last updated on 2013.01.15 18:21:31 MSK
Всего не захардкодить.
Что меня заинтересовало: захардкоджено много сообщений с разных серверов о том, что «Lookup quota exceeded». В Ruby Whois они тоже есть, но там информация раскидана по разных файлам (для каждого whois сервера), и ее трудно найти, а тут все в одном месте. Получается, что пользователей банят не только RIPE и AfriNIC, но и целый ряд других whois серверов (на практике я с этим раньше не встречался):
our %exceed = (
'whois.eu' => '(?:Excessive querying, grace period of|Still in grace period, wait)',
'whois.dns.lu' => 'Excessive querying, grace period of',
'whois.mynic.net.my' => 'Query limitation is',
'whois.ripn.net' => 'exceeded allowed connection rate',
'whois.domain-registry.nl' => 'too many requests',
'whois.nic.uk' => 'and will be replenished',
'whois.networksolutions.com' => 'contained within a list of IP addresses that may have failed',
'whois.worldsite.ws' => 'You exceeded the maximum',
'whois.tucows.com' => '(?:Maximum Daily connection limit reached|exceeded maximum connection limit)',
'whois.centralnic.com' => 'Query rate of \\d+',
'whois.pir.org' => 'WHOIS LIMIT EXCEEDED',
'whois.nic.ms' => 'Look up quota exceeded',
'whois.nic.gs' => 'look up quota exceeded',
'whois.nic.tl' => 'Lookup quota exceeded',
'whois.nic.mg' => 'Lookup quota exceeded',
'whois.nic.li' => 'You have exceeded this limit',
'whois.nic.ch' => 'You have exceeded this limit',
);
0
Дописал в статью несколько слов про pwhois.
0
И ещё одно:
если под рукой нет whois утилиты, при этом Вы знаете whois сервер, но не хотите писать для опроса свой скрипт, то можно для запроса использовать telnet:
$ telnet whois.com.ua 43
Trying 217.12.194.25…
Connected to whois.com.ua.
Escape character is '^]'.
% request from 1.2.3.4
% This is the Ukrainian Whois query server #F.
% The Whois is subject to Terms of use
% See hostmaster.ua/services/
%
kiev.ua <=== тут вводится имя домена
% % .UA whois
% Domain Record:
% =============
domain: kiev.ua
admin-c: UADM15-UANIC
tech-c: HOST-UANIC
dom-public: YES
nserver: sns-pb.isc.org
nserver: ho1.ns.kiev.ua
nserver: k.ns.com.ua
nserver: ba1.ns.ua
nserver: nix.ns.ua
remark: Public domain
remark: Kiev, Ukraine
created: 0-UANIC 19921202000000
changed: ST101-UANIC 20120726111700
source: UANIC
% Glue Record:
…
если под рукой нет whois утилиты, при этом Вы знаете whois сервер, но не хотите писать для опроса свой скрипт, то можно для запроса использовать telnet:
$ telnet whois.com.ua 43
Trying 217.12.194.25…
Connected to whois.com.ua.
Escape character is '^]'.
% request from 1.2.3.4
% This is the Ukrainian Whois query server #F.
% The Whois is subject to Terms of use
% See hostmaster.ua/services/
%
kiev.ua <=== тут вводится имя домена
% % .UA whois
% Domain Record:
% =============
domain: kiev.ua
admin-c: UADM15-UANIC
tech-c: HOST-UANIC
dom-public: YES
nserver: sns-pb.isc.org
nserver: ho1.ns.kiev.ua
nserver: k.ns.com.ua
nserver: ba1.ns.ua
nserver: nix.ns.ua
remark: Public domain
remark: Kiev, Ukraine
created: 0-UANIC 19921202000000
changed: ST101-UANIC 20120726111700
source: UANIC
% Glue Record:
…
+1
Да, для работы с whois в «ручном» режиме, telnet — это все, что требуется.
Более того, некоторые whois серверы поддерживают специальные параметры, которые через Unix-овый whois или другую утилиту передать не удается. Так что остается только telnet.
Например, параметр "-B" позволяет whois.ripe.net выводить поля «notify», «changed» и «e-mail», которые по-умолчанию не выводятся:
Более того, некоторые whois серверы поддерживают специальные параметры, которые через Unix-овый whois или другую утилиту передать не удается. Так что остается только telnet.
Например, параметр "-B" позволяет whois.ripe.net выводить поля «notify», «changed» и «e-mail», которые по-умолчанию не выводятся:
$ telnet whois.ripe.net 43
Trying 193.0.6.135...
Connected to whois.ripe.net.
Escape character is '^]'.
% This is the RIPE Database query service.
% The objects are in RPSL format.
%
% The RIPE Database is subject to Terms and Conditions.
% See http://www.ripe.net/db/support/db-terms-conditions.pdf
-B 213.180.204.0 <<<<< обратите внимание на "-B"
% Information related to '213.180.204.0 - 213.180.204.255'
inetnum: 213.180.204.0 - 213.180.204.255
netname: YANDEX-213-180-204
descr: Yandex enterprise network
country: RU
admin-c: YNDX1-RIPE
tech-c: YNDX1-RIPE
remarks: INFRA-AW
status: ASSIGNED PA
mnt-by: YANDEX-MNT
changed: artem@yandex-team.ru 20091116 <<<<< дополнительное поле
source: RIPE
...
+2
Не будете ли вы столь щедры поделиться исходниками своего python модуля? Спасибо!
+3
НЛО прилетело и опубликовало эту надпись здесь
Все-таки при поиске IP, лучше сразу опрашивать IANA, а не ARIN. Это из личного опыта. Тоже в свое время страдал этой проблемой, когда делал этот инструмент (IP whois only)
+1
Возможно. Я первым спрашиваю ARIN из следующих соображений: 1. за большинство выделенных IP (и за подавляющее большинство IP, которые могут интересовать потенциальных пользователей нашего продукта) отвечает именно ARIN. 2. ARIN никого не банит.
Если бы сайт был в рунете (где за все IP адреса отвечает RIPE), вероятно, опрашивать ARIN первым имело бы меньше смысла.
Если бы сайт был в рунете (где за все IP адреса отвечает RIPE), вероятно, опрашивать ARIN первым имело бы меньше смысла.
0
IANA во всей иерархии — высший орган. Именно эта организация отвечает за распределение блоков региональным реестрам. ARIN лишь один из них. Поэтому запрос к whois IANA всегда будет возвращать реферал на нужный RIR. Проблем с баном пока не было.
0
Идея в том, чтобы минимизировать число возможных запросов (а значит и время ожидания пользователя).
Если я обращаюсь к ARIN, то (условно) в 75% случаев я получу требуемый результат с первого же запроса, в 24% случаев со второго (ARIN почти всегда указывает на правильный региональный сервер) и в 1% случаев с третьего или больше. Если же я обращаюсь к IANA, то мне всегда надо будет делать минимум два запроса. Минимум — потому что IANA тоже не всегда указывает на актуальный сервер. Например:
Если теперь обратиться к RIPE, то окажется, что IP адрес переделегирован AfriNIC, о чем IANA не знала. Стоит отметить, что ARIN также указывает на RIPE.
Если я обращаюсь к ARIN, то (условно) в 75% случаев я получу требуемый результат с первого же запроса, в 24% случаев со второго (ARIN почти всегда указывает на правильный региональный сервер) и в 1% случаев с третьего или больше. Если же я обращаюсь к IANA, то мне всегда надо будет делать минимум два запроса. Минимум — потому что IANA тоже не всегда указывает на актуальный сервер. Например:
$ whois -h whois.iana.org 213.154.64.0
refer: whois.ripe.net
inetnum: 213.0.0.0 - 213.255.255.255
organisation: RIPE NCC
status: ALLOCATED
whois: whois.ripe.net
changed: 1993-10
source: IANA
Если теперь обратиться к RIPE, то окажется, что IP адрес переделегирован AfriNIC, о чем IANA не знала. Стоит отметить, что ARIN также указывает на RIPE.
0
Я понимаю, что вы так оптимизируете для своего частного случая. Я же говорю — в целом, имело бы смысл начинать с IANA, для общего случая. Комметнарии читают и другие и не все ориентируются именно на ARIN. Плюс ко всему, в APNIC делегирование происходит национальным регистрам — JPNIC, KRNIC и т.д. — их там довольно много, я еще сам у себя не все сделал. В целом, для общего случая, если речь идет о равности всех клиентов, то лучше начинать сверху и идти вниз, не взирая на лишний запрос.
0
Респект за статью. Давно хотел разобраться как же работает этот самый whois. Было много вопросов, но никак не было времени. Теперь все более менее понятно.
0
Отличная статья, спасибо!
0
Есть ли возможность узнать количество всех записей (проданных доменов) в каком-либо домене верхнего уровня? (нужен домен .tv, сервер tvwhois.verisign-grs.com)
0
Через протокол whois — точно нет. Возможно, такая информация есть на сайтах некоторых регистраторов. Ну или кто-то достал такую статистику и еще где-то выложил.
0
Есть за деньги на zone-file.com
0
Количество можно узнать бесплатно — https://domains-monitor.com/zone/tv/.
0
Есть маленькая тулза для определения whois серверов доменных зон и whois произвольного домена в каждой из выбранных зон. Написана на PHP, может кому пригодится: github.com/noys/ianacheck
0
Как порешали вопрос с зоной .gr?
0
В чем именно была проблема с зоной .gr? Я уже точно не помню, но вроде бы 2.5 года назад (на момент написания статьи) ее не было. Хотя с некоторыми зонами они действительно были нерешаемые: если информация доступна только на вебе с каптчей, то вряд ли что-то можно придумать.
Благодарю!
Благодарю!
0
Спасибо. Долго искал информацию про эту мудреную конструкцию:
$ whois -h whois.nic.name 'domain = d-n-s.name'
0
Статья очень интересная, как кто-то говорил выше — целый детектив
А может ли кто-то поделится информацией об этой теме с точки зрения регистратора?
Я так понимаю к регистраторам должны так же быть какие-то требования…
Может есть более простой подход?
А может ли кто-то поделится информацией об этой теме с точки зрения регистратора?
Я так понимаю к регистраторам должны так же быть какие-то требования…
Может есть более простой подход?
0
Зарегистрируйтесь на Хабре , чтобы оставить комментарий
Whois: практическое руководство пользователя