Página 1 de 1

[Ruby] Geotool-Ruby by strup

Publicado: 26 Dic 2012, 07:09
por strup
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(.*?)&nbsp;(.*?)\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