Как с помощью Node.js проверить, зарегистрировано ли доменное имя?

Я создаю простое веб-приложение, чтобы научиться node.js, и в нем мне нужно проверить, зарегистрировано ли определенное доменное имя, указанное пользователем. Я не совсем уверен, как это сделать, и я был бы признателен, если бы кто-нибудь мог меня просветить.


person Joe D    schedule 17.02.2011    source источник


Ответы (4)


Взгляните на эту статью Мэтта Брубека:

http://limpet.net/mbrubeck/2010/01/13/si-unit-domains-node-js.html

Существует скрипт Node.js, который делает именно это.

person rsp    schedule 17.02.2011

Я думаю, что лучший способ сделать это - использовать модуль dns для выполнения resolve, и если ничего не возвращается или возникает ошибка, она еще не зарегистрирована.

https://nodejs.org/api/dns.html

person Kevin Gorski    schedule 17.02.2011
comment
Использовать DNS-запросы для этой нужды неправильно. Доменное имя может быть зарегистрировано без делегирования по нескольким законным причинам, поэтому у вас будут ложные срабатывания. - person Patrick Mevzek; 04.01.2018

Запустите что-то вроде этого:

//loads the Node core DNS module
var dns = require ( 'dns' )

function checkAvailable( url ) {
  //uses the core modules to run an IPv4 resolver that returns 'err' on error
  dns.resolve4( url, function (err, addresses) {
    if (err) console.log (url + " is possibly available : " + err)
  })
}
// calls the function of a given url        
checkAvailable( "ohwellhaithar.com" )
person EhevuTov    schedule 07.07.2012
comment
Использовать DNS-запросы для этой нужды неправильно. Доменное имя может быть зарегистрировано без делегирования по нескольким законным причинам, поэтому у вас будут ложные срабатывания. - person Patrick Mevzek; 04.01.2018
comment
@PatrickMevzek, что вы предлагаете в качестве более эффективного способа проверки DNS? Я сделал что-то в соответствии с предложением EhvuTov здесь, что теперь также можно использовать в качестве API: clay.run/services/nicoslepicos/is-domain-name-available/code Для использования в качестве API просто нажмите: POST exec.clay.run/nicoslepicos/is-domain-name-available с параметром доменного имени в теле POST (или используйте Clay SDK, если вы находитесь в узле). - person nicoslepicos; 22.02.2018
comment
Чтобы выполнить проверку доступности/регистрации домена (не проверку DNS), либо используйте протокол whois, либо специальную службу реестра для проверки доступности домена (зависит от TLD), либо используйте API одного регистратора, у которого есть нужные вам TLD, поскольку регистраторы , обычно через EPP, могут выполнять проверки доступности в реальном времени в реестре. Также в приведенном выше ответе url и доменное имя не являются взаимозаменяемыми, то, что обрабатывается выше, является доменными именами, а не URL-адресами. - person Patrick Mevzek; 22.02.2018

Я не нашел правильного ответа на этот вопрос. Мое решение здесь

https://www.npmjs.com/package/whois
person x-magix    schedule 20.12.2019