2 votos

Python bucle de escaneo de puertos script se detiene sin error en el puerto 80

Tengo un script en python que escaneos de puertos. Puedo escanear un host que tiene 2 puertos abiertos (22 y 80). Cuando mi script de llegar a puerto 22 me sale un mensaje con "Abrir puerto + la ejecución de los servicios". A continuación, las secuencias de comandos continúa ... Cuando se llegue al puerto 80, es atascarse. No sé por qué, no me da un error.

Puede alguien revisar mi código porque no puedo encontrar el problema. Thankss

    for port in range(1,82):
            s = socket.socket()
            result = s.connect_ex((ip, port))
            s.close()
            if result == 0:
                    s = socket.socket()
                    s.connect((ip, port))
                    data = str(s.recv(1024))
                    s.close()
                    print ("Port {}: Open  --  ".format(port) + (data))
            else:
                    print ("Port {}: Closed".format(port))

2voto

neildeadman Puntos 111

Tiene que espere a que la conexión de tiempo de espera cuando el host de destino/puerto no está abierto. A veces, un router o host va a regresar rápidamente una conexión rechazada, pero por defecto la mayoría de los servicios están configurados para el "sigilo" y no responde en modo alguno.

Usted puede solucionar este problema mediante el setTimeout función en Python en el zócalo:

s.setTimeout(1.0)

Acepta un número de segundos, pero puede ser un número de punto flotante como 0.5 de 500ms.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: