在Ruby中通过DNS检查域可用性?检查DNS记录?

时间:2012-09-29 22:47:46

标签: ruby dns rubygems whois

SO post建议通过DNS查找和WHOIS查询的组合来检查域可用性。

不幸的是,目前尚不清楚在Ruby中执行DNS查找的最佳方法是什么。 Dnsruby宝石的文档充其量只是稀疏。

使用Dnsruby查看域名是否已被采用的最有效方法是什么?

谢谢!

1 个答案:

答案 0 :(得分:3)

这篇标题为Some examples of dnsruby in action的博客文章详细说明了如何将dnsruby用于常见任务。

根据那里提到的步骤,我可以在irb中验证以下行为:

>> require 'dnsruby'
>> include DnsRuby    
>> res = Resolver.new
=> #<Dnsruby::Resolver:0x00000100f4d2c8 @resolver_ruby=nil, @src_address=nil, @single_res_mutex=#<Mutex:0x00000100f4d278>, @configured=false, @do_caching=true, @config=Config - nameservers : 192.168.1.1,  domain : empty, search : local,  ndots : 1, @do_validation=false, @query_timeout=0, @retry_delay=5, @retry_times=1, @packet_timeout=5, @port=53, @udp_size=4096, @dnssec=true, @use_tcp=false, @no_tcp=false, @tsig=nil, @ignore_truncation=false, @src_port=[0], @recurse=true, @single_resolvers=[]>

>> res.query( 'www.google.com' )
=> ;; Answer received from 192.168.1.1 (123 bytes).... lengthy answer with A record info.

>> res.query( 'www.nonexistantsite.com' )
=> Throws an Dnsruby::NXDomain: Dnsruby::NXDomain exception. 

看起来在ruby程序中适当地包装它是一种使用ruby执行DNS查找的简单方法。