Как я могу использовать Ruby для проверки существования домена? - PullRequest
5 голосов
/ 23 апреля 2010

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

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

puts "valid!" if domain_exists?("example.com")

Ответы [ 4 ]

8 голосов
/ 23 апреля 2010
require 'socket'

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

  true
end
4 голосов
/ 23 апреля 2010

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

1 голос
/ 23 апреля 2010

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

Установить гем и требовать.

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

a.available? => ложь

Существует также CLI в комплекте, если вы устанавливаете его через гем ruby: ruby-whois

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

0 голосов
/ 23 апреля 2010

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

`nslookup #{domain}`

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

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

...