Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def find_nameservers(domain_name)
- domain_name = domain_name + '.' unless domain_name.match(/\.$/)
- nameserver_req = @resolver.getresources(domain_name, Resolv::DNS::Resource::IN::NS)
- if(nameserver_req.empty?)
- raise(I6::I6Error, 'Domain \'' + domain_name + '\' has no nameservers, unable to fetch NS records')
- end
- nameservers = []
- ip_addresses = []
- nameserver_req.each do |ns|
- rdata = ns.name.to_s
- nameservers << Dnsruby::RR.create(:name => domain_name, :type => 'NS', :ttl => 0, :domainname => rdata)
- @resolver.each_address(rdata) do |adr|
- ip_addresses << Dnsruby::RR.create(:name => rdata, :type => 'A', :ttl => 0, :address => adr.to_s)
- end
- end
- soa_req = @resolver.getresources(domain_name, Resolv::DNS::Resource::IN::SOA)
- unless soa_req.empty?
- primary_ns = nameservers.find { |ns| ns.domainname.to_s == soa_req[0].mname.to_s }
- if primary_ns
- nameservers.delete(primary_ns)
- nameservers.insert(0, primary_ns)
- end
- end
- nameservers + ip_addresses
- end
Add Comment
Please, Sign In to add comment