Cada vez que veo uno de tus codigos me doy cuenta de todo lo que falta por aprender.... Aqui dejo lo que habia conseguido hacer yo. Es bastante menos legible y muchisimo mas largo xDD
Y su salida
Siguiente ejercicio!
Código (python) [Seleccionar]
import socket
def rango(): #Recoge el rango de ip
while True:
a = (raw_input("introduzca primera ip: "))
b = (raw_input("introduzca segunda ip: "))
c=b
a, b = a.replace("."," "), b.replace("."," ")
try:
int(a.replace(" ",""))
int(b.replace(" ",""))
a, b = a.split(), b.split()
return a,b,c
except:
print "El rango ip introducido no es valido"
def listaip(): #Genera una lista con todas las ip en el rango
aux=[]
ip = []
a, b, c = rango()
a1, a2, a3, a4 = int(a[0]), int(a[1]), int(a[2]), int(a[3])
b1, b2, b3, b4 = int(b[0]), int(b[1]), int(b[2]), int(b[3])
while True:
while a1 != 255:
while a2 != 255:
while a3 != 255:
while a4 != 255:
aux=[]
aux.append(str(a1))
aux.append(str(a2))
aux.append(str(a3))
aux.append(str(a4))
aux = (".".join(aux))
ip.append(aux)
a4 +=1
if aux == c:
return ip
aux=[]
aux.append(str(a1))
aux.append(str(a2))
aux.append(str(a3))
aux.append(str(a4))
aux = (".".join(aux))
ip.append(aux)
a4 = 0
a3 +=1
if aux == c:
return ip
aux=[]
aux.append(str(a1))
aux.append(str(a2))
aux.append(str(a3))
aux.append(str(a4))
aux = (".".join(aux))
ip.append(aux)
a4 = 0
a3 = 0
a2 +=1
if aux == c:
return ip
aux=[]
aux.append(str(a1))
aux.append(str(a2))
aux.append(str(a3))
aux.append(str(a4))
aux = (".".join(aux))
ip.append(aux)
a4 = 0
a3 = 0
a2 = 0
a1 +=1
if aux == c:
return ip
def soc(host):
try:
s=socket.socket()
s.settimeout(0.1)
s.connect((host,80))
s.send("HEAD / HTTP/1.1\n\n")
f=s.recv(3000)
s.close()
return f
except:
return False
def comparar(cabecera,servidor):
x = cabecera.find(servidor)
if x != -1:
return True
else:
return False
def gen(ips):
coincidencias = []
indice = 0
for i in ips:
try:
y = soc(i)
if comparar(y,x):
print "Servidor encontrado en: ", i
coincidencias.append(i)
indice +=1
else:
print i
except:
print "Ningun servidor web en: ", i
continue
return coincidencias
#Main
print "######################################"
print " Buscador de cadenas en headers http"
print "######################################\n"
x = raw_input("Introduzca el servidor a buscar:" )
ips = listaip()
print "Empezando escaneo"
coin = gen(ips)
print "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
print "Un total de %d servidores detectados: " % (len(coin))
for i in coin:
print "Servidor encontrado en: ", i
Y su salida
Código [Seleccionar]
[Masita@Hartigan Documentos]$ python ip.py
######################################
Buscador de cadenas en headers http
######################################
Introduzca el servidor a buscar:Apache/2.2.13
introduzca primera ip: 212.92.50.9
introduzca segunda ip: 212.92.50.18
Empezando escaneo
Servidor encontrado en: 212.92.50.9
212.92.50.10
212.92.50.11
Ningun servidor web en: 212.92.50.12
.....
.....
Un total de 1 servidores detectados:
Servidor encontrado en: 212.92.50.9
Siguiente ejercicio!