o programe para que saque asta la partida de nacimiento , el code tiene muchas lineas puesto que en ruby como en otros lenguajes todo es a puro codigo y la interfaz es a puro code, algo que se suele hacer tedioso, espero le den buen uso, ya saben que si alguno lo va a usar no tiene mas que coger y descargarse la gema whois 2.7.0 (solo para los que tienen el interprete de ruby), bueno no me enrollo mas xD, una imagen que vale mas que 1000 palabras xD,
[spoiler]
[/spoiler]

el diseño de los resultados os lo dejo ver a vosotros
el Code:
#encoding: utf-8
=begin
*************************************************
*Ruby Whois *
*Autor: strup *
*Lenguaje: Ruby *
*Proposito: Extraer los datos de un servidor *
*4:31 20/12/2012 *
*Actualizado: 19:54 21/12/2012 *
*************************************************
=end
require 'whois'
require 'tk'
root=TkRoot.new("title"=>"Whois by strup") do
bg "black"
end
espacios=" "*22
dominio=TkVariable.new()
TkLabel.new(root) do
text espacios+"www."
bg "black"
fg "green"
pack("side"=>"left")
place("height"=>15)
end
TkLabel.new(root) do
text " Whois coded by strup"
bg "black"
fg "green"
pack("side"=>"left","side"=>"bottom")
end
TkEntry.new(root) do
textvariable(dominio)
bd 0
bg "black"
fg "green"
insertbackground "red"
pack("side"=>"top")
end
TkButton.new(root) do
text "Whois Tradicional"
bd 8
width 15
fg "green"
bg "black"
activeforeground "black"
activebackground "green"
relief "sunken"
pack("side"=>"left","pady"=>80,"padx"=>30)
command(proc{mostrar(whois(dominio.value))})
end
TkButton.new(root) do
text "Whois"
bd 8
width 10
fg "green"
bg "black"
activeforeground "black"
activebackground "green"
relief "sunken"
pack("side"=>"right","pady"=>80,"padx"=>30)
command(proc{mostrarme(dominio.value)})
end
def mostrar(cadena)
texto=TkText.new(root) do
bd 1
width 115
height 50
bg "black"
fg "green"
insertbackground "red"
pack("side"=>"top")
end
texto.insert('end',linea=cadena.to_s)
TkButton.new(root) do
text "Obtener Datos Personales"
bd 8
width 25
fg "green"
bg "black"
activeforeground "black"
activebackground "green"
pack("side"=>"bottom")
command(proc{extraer(linea)})
end
texto.yscrollcommand (proc{|pri,ult| TkScrollbar.new(root) do command(proc{ |*args| texto.yview(*args)}).place("height"=>"772","x"=>"981")end.set(pri,ult)})
end
def mostrarme(cadena)
texto=TkText.new(root) do
bd 0
width 100
height 40
bg "black"
fg "green"
insertbackground "red"
pack("side"=>"top")
end
registri=Whois::query(cadena).registered?.to_s
reg=lambda do
unless registri == true
"Esta registrado"
else
"No esta registrado"
end
end
texto.insert('end',Whois::query(cadena).domain.to_s)
texto.insert('end',"\n\nRegistrar:\n"<<Whois::query(cadena).registrar.to_s)
texto.insert('end',"\n\nServer:\n"<<Whois::query(cadena).referral_url.to_s)
texto.insert('end',"\n\nServer whois:\n"<<Whois::query(cadena).referral_whois.to_s)
texto.insert('end',"\n\nIP server:\n"<<IPSocket::getaddress(cadena).to_s)
texto.insert('end',"\n\nTipo de server:\n"<<Whois::query(cadena).server.type.to_s)
texto.insert('end',"\n\nAlojado en:\n"<<Whois::query(cadena).nameservers.to_s.gsub(/, ipv4=nil, ipv6=nil>/,"").gsub(/#<struct Whois::Record::Nameserver name=/,""))
texto.insert('end',"\n\nCreado el:\n"<<Whois::query(cadena).created_on.to_s)
texto.insert('end',"\n\nExpira el:\n"<<Whois::query(cadena).expires_on.to_s)
texto.insert('end',"\n\nUltima actualización:\n"<<Whois::query(cadena).updated_on.to_s)
texto.insert('end',"\n\nRegistrado:\n"<<reg.call)
texto.insert('end',"\n\nStatus:\n"<<Whois::query(cadena).status.to_s)
texto.insert('end',"\n\nDatos Personales:\n"<<Whois::query(cadena).contacts.to_s)
end
def whois(domain)
Whois::query(domain)
end
def extraer(datos)
File.open('log.txt','w') do |dat|
datos.each_line do |dats|
if dats =~ /\d{5,50}|@+|c\/|C\/|[+]|([*9])|Admin|Tech|Own|street|Street|call|Call|city|City|provin|Provin/
dat.puts dats
end
end
end
prin=IO.readlines('log.txt')
for i in(0..prin.length)
puts prin[i]
end
end
Tk.mainloop
para instalar la gema whois solo ahi que tener el interprete de ruby y ejecutar en el cmd el siguiente comandogem install whois --version 2.7.0
como pueden ver obtiene los datos y los guarda en un txt llamado log en el mismo directorio donde se ejecuto el script, y despues los muestra en la consola como vista previa, un saludo y espero os guste el code