如何使用Ruby检查域是否存在?

时间:2010-04-22 22:41:19

标签: ruby validation dns registrar

有些事情:

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

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

4 个答案:

答案 0 :(得分:8)

require 'socket'

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

  true
end

答案 1 :(得分:4)

如果要检查域是否已注册,则需要执行Whois查询。 http://www.ruby-whois.org/

答案 2 :(得分:1)

使用ruby-whois很容易:

安装gem和require。

a = Whois.whois(“google.com”)

a.available? =>假

如果您通过ruby gems:ruby-whois

安装它,还会捆绑一个CLI

网页:ruby-whois.org

答案 3 :(得分:0)

你可以像这样向nslookup发送:

`nslookup #{domain}`

并使用正则表达式等将结果解析为文本。

或者你可以使用Socket类,特别是Socket.getaddrinfo。有关此问题,请参阅之前的StackOverflow answer