Código
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:
[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!