From: Eric Hodel Date: 2011-11-03T07:00:48+09:00 Subject: Re: Ruby and Telnet On Nov 2, 2011, at 2:57 AM, Leo M. wrote: > Because I want to perform a smtp reverse lookup! What is "smtp reverse lookup"? Do you mean DNS reverse lookup? You can do that with this script: require 'resolv' Resolv::DNS.open do |dns| res = dns.getresources ARGV.shift, Resolv::DNS::Resource::IN::MX exchanges = {} res.each do |r| exchanges[r.exchange] = r.preference end forward = Hash.new { |h, k| h[k] = [] } exchanges.each_key do |exchange| res = dns.getresources exchange, Resolv::DNS::Resource::IN::A res.each do |r| forward[exchange] << r.address end end forward.each do |exchange, addresses| addresses.each do |address| res = dns.getresources address.to_name, Resolv::DNS::Resource::IN::PTR res.each do |r| puts "MX #{exchange} #{exchanges[exchange]}" puts "\thas address #{address}" puts "\twith reverse #{r.name}" end end end end