Я должен получить txt поле от записи DNS.
Там какой-либо рубиновый API должен сделать что-то вроде этого?
nslookup -q=txt xxxx.com
Попробуйте установить dnsruby gem.
Код активно поддерживается и используется в некоторых значительных производственных системах.
require 'rubygems'
require 'dnsruby'
include Dnsruby
# Use the system configured nameservers to run a query
res = Dnsruby::Resolver.new
ret = res.query("google.com", Types.TXT)
print ret.answer
(Код протестирован на MacOS X - печатает SPF-запись Google)
Смотрите также ответ @Alex, который является более идиоматичным Ruby - Алекс является автором dnsruby
.
Или используйте систему ("nslookup -q = txt xxxx.com")
require 'dnsruby'
Dnsruby::DNS.open {|dns|
dns.each_resource("google.com", "TXT") {|rr| print rr}
# or
print dns.getresource("google.com", "TXT")}
}
Попробуйте Net::DNS gem.
Вот пример:
result = Net::DNS::Resolver.start("google.com", Net::DNS::TXT)
values = result.each_mx.map { |r| r.txt }
# "v=spf1 include:_spf.google.com ip4:216.73.93.70/31 ip4:216.73.93.72/31 ~all "
Дальнейшие инструкции по установке и использованию можно найти на странице Github по ссылке выше.