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
Abolición para el torneo del toro de la vega. Death to the murderers of bulls.
Responder

Volver a “Fuentes”