Наиболее эффективный способ программно определить, доступен ли веб-домен?
-
01-07-2019 - |
Вопрос
Я пишу некоторый код, чтобы определить, зарегистрирован ли сетевой домен.Например, я хочу проверить, если "Google123.com" можно.Есть по крайней мере два способа, которыми я могу сделать это программно, но я не уверен, какой из них более верен:
- A) В linux / cygwin я могу запустить команду whois, чтобы узнать, используется ли домен .
- B) В Linux / Windows я могу запустить команду nslookup, чтобы увидеть, разрешим ли домен.
Мои вопросы таковы:
- Действительно ли nslookup является допустимым способом проверки наличия регистрации?Есть ли у каждого зарегистрированного домена сервер имен и отображается ли он в DNS?
- Каков самый быстрый способ пройти эту проверку при регистрации?Есть какие-нибудь советы или другие способы сделать это?
Решение
nslookup обращается к вашему dns-серверу, который указан в настройках вашей системы.Он может отстать от времени или не содержать никакой записи dns.Я бы подумал, что лучшим способом было бы установить tcp-соединение с whois.internic.net порт 43 (порт whois), передать имя, которое вы хотите проверить, и затем вы должны получить ответ, сообщающий вам об этом.Если он не существует, вы получите ответ типа Не подходит для "domainyourchecking.com"
Другие советы
Что касается №1, то нет.Нет требования, чтобы зарегистрированные домены действительно имели DNS.
Проблема с whois заключается в том, что нет согласованного ответа от разных tld.
Так что, если вы ищете только .com или какой-то другой конкретный tld, все в порядке.Если вы начнете просматривать различные ccTLD или другие gTLD, вы можете обнаружить множество специальных обработок в своей логике, пытаясь выяснить, что означает "доступно" в данных, возвращаемых командой whois.
Whois всегда возвращает командной строке результат успешного выполнения, даже если домен доступен.:(
Ходят слухи, что некоторые веб-сайты, которые позволяют вам искать домены, на самом деле являются прикрытием для доменных спекулянтов, которые скупят домен, как только вы его найдете, а затем попытаются продать его вам.Я никогда не сталкивался с подобной аферой, но вы, возможно, захотите попробовать несколько поисковых запросов по мусорным доменам на новом сайте, прежде чем искать доменное имя своей мечты.
Это даст вам быстрый ответ "да" / "нет", но если вы считаете, что это бесплатно, и вы этого хотите, попробуйте зарегистрировать его, возможно, вы обнаружите, что он уже занят.
система("whois $domainname");