Как я могу использовать Ruby, чтобы проверить, существует ли домен?

Что-то вроде:

def domain_exists?(domain)
  # perform check
  # return true|false
end

puts "valid!" if domain_exists?("example.com")
5
задан maček 22 April 2010 в 22:41
поделиться

4 ответа

Если вы хотите проверить, зарегистрирован ли домен или нет, вам необходимо выполнить запрос Whois. http://www.ruby-whois.org/

4
ответ дан 18 December 2019 в 14:43
поделиться

С ruby- whois довольно прост:

Установите gem и потребуйте.

a = Whois.whois ("google.com")

a.available? => false

В комплекте также идет интерфейс командной строки, если вы устанавливаете его через ruby ​​gems: ruby-whois

веб-страница по адресу: ruby-whois.org

1
ответ дан 18 December 2019 в 14:43
поделиться

Вы можете выполнить оболочку для nslookup следующим образом:

`nslookup #{domain}`

и проанализировать результаты как текст с регулярными выражениями и т. Д.

Или вы можете использовать Socket класс, а именно Socket.getaddrinfo. См. Предыдущий ответ StackOverflow именно на этот вопрос.

0
ответ дан 18 December 2019 в 14:43
поделиться
require 'socket'

def domain_exists?(domain)
  begin
    Socket.gethostbyname(domain)
  rescue SocketError
    return false
  end

  true
end
8
ответ дан 18 December 2019 в 14:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: