[Ruby] Geotool-Ruby by strup
Publicado: 26 Dic 2012, 07:09
Saludos foro, esta vez vengo con un script para sacar los datos de la ip de alguien, por ejemplo, le gustara a aquellos que miran cada dos por tres geotool, pues esto facilitara la tarea de tener que ir habriendo la pagina etc etc.
#encoding: utf-8
=begin
*************************************************
*Geotool-Ruby by strup *
*Autor: strup *
*Lenguaje: Ruby *
*Proposito: extraer datos de una Dirección IP *
*6:17 26/12/2012 *
*************************************************
=end
require 'net/http'
puts "GEOTOOL-Ruby, by strup".center(80,"·")
puts "\nIntroduce la IP a escanear"
direccion_ip=gets.chomp
ip=Net::HTTP.post_form(URI('http://geoip.flagfox.net/'),{"ip"=>direccion_ip,"Submit"=>"submit"}).body
def servidor(ip)
ip.each_line do |li|
if li =~ /title:/
li=li.gsub(/\t\t\t\t\t\ttitle: "/) {$1}
li=li.gsub(/"/) {$1}
puts "Servidor: "+li
end
end
end
def continente(ip)
if ip =~ /Continent<\/td>\n\t\t\t\t<td align="left" >\n\t\t\t\t<a href="http:\/\/en.wikipedia.org\/wiki\/(.*?)" tar/m
puts "Continente: "+$1
end
end
def pais(ip)
if ip =~ /nowrap"><a href="http:\/\/en.wikipedia.org\/wiki\/(.*?)"/m
puts "País: "+$1
end
end
def region (ip)
if ip =~ /gion<\/td>\n\t\t\t\t<td align="left" >\n\t\t\t\t<span class="dim">(.*?)<\/span>/m
puts "Región: "+$1
end
end
def ciudad(ip)
if ip =~ /ity<\/td>\n\t\t\t\t<td align="left" >\n\t\t\t\t<span class="dim">(.*?)<\/span>/m
puts "Ciudad: "+$1
end
end
def direccion_ip(ip)
if ip =~ /http:\/\/whois.domaintools.com\/(.*?)" tar/
puts "Dirección IP: "+$1
end
end
def isp(ip)
if ip =~ /<td align="left" width="33%">\n\t\t\t\t\t(.*?)\n/m
puts "ISP: "+$1
end
end
def clave_pais(ip)
if ip =~ /try Code<\/td>\n\t\t\t\t<td align="left" >\n\t\t\t\t(.*?) (.*?)\n/m
puts "Código de País: #{$1}, "+$2
end
end
def hora(ip)
if ip =~ /[*]<\/a><\/td>\n\t\t\t\t<td align="left" >\n\t\t\t\t<span style="white-space: nowrap">(.*?)\n<\/span>/
puts "Hora Local: "+$1
end
end
def code_postal(ip)
if ip =~ /tal Code<\/td>\n\t\t\t\t\t\t<td align="left" >\n\t\t\t\t\t\t(.*?)\n/m
puts "Código Postal: "+$1.gsub(/<span class="dim">/) {$1}.gsub(/<\/span>/) {$1}
else
puts "Código Postal no Encontrado"
end
end
def latitud(ip)
if ip =~ /Latitude<\/td>\n\t\t\t\t<td align="left" >\n\t\t\t\t(.*?)\n/m
puts "Latitud: "+$1
end
end
def longitud(ip)
if ip =~ /Longitude<\/td>\n\t\t\t\t<td align="left" >\n\t\t\t\t(.*?)\n/m
puts "Longitud: "+$1
end
end
begin
servidor(ip)
continente(ip)
pais(ip)
region(ip)
ciudad(ip)
direccion_ip(ip)
isp(ip)
clave_pais(ip)
hora(ip)
code_postal(ip)
latitud(ip)
longitud(ip)
end
puts "\n\nDatos Cargados\nPulsa Enter para salir"
gets()
espero os guste el code, saludos