[Python]Simple port scanner

Iniciado por braulio--, 19 Abril 2009, 19:13 PM

0 Miembros y 1 Visitante están viendo este tema.

braulio--

Como dice el título he hecho un port scanner.
No es nada bueno, solo te dice si un puerto esta abierto o cerrado ademas de ser muy lento, aqui esta el code :
Código (python) [Seleccionar]

################################
# Escaner de puertos en python #
########## braulio23 ###########
###### foro.elhacker.net #######
################################
import socket
print "Escaner de puertos by braulio23\n"
raw_input()
host = raw_input("Indica el host : ")
numerouno = raw_input("Primer numero del rango : ")
numerodos = raw_input("Segundo numero del rango : ")
socket = socket.socket()
for puerto in range(int(numerouno),int(numerodos)):
    try:
        socket.connect((host,puerto))
        print "Puerto "+str(puerto)+" abierto"
        socket.close()

    except :
        print "Puerto "+str(puerto)+" cerrado."
raw_input()
   

Darioxhcx

osea
va de un rango hacia otro
y muestra un solo puerto abierto o todos ?

cuando llegue a casa lo voy a mirar.. voy a empezar a ver python tmb en estos dias

saludos

braulio--

Muestra todos los puertos abiertos dentro del rango que especifiques.

tcp_root

Podrías mejorarlo utilizando split y asi ahorrarte una variable


import socket
print "Escaner de puertos by braulio23\n"
raw_input()
host = raw_input("Indica el host : ")
numerouno = raw_input("Rango de puertos(1-9999): ")
numerosplit = numerouno.split('-') #decimos a python que separe el rango que nos da siguiendo el patron - y quedara un array  numerosplit = ('1','9999')
socket = socket.socket()
for puerto in range(int(numerosplit[0]),int(numerosplit[1])): #aqui llamamos al array y seleccionamos los valores el 0 es el primero y el 1 es el segundo 0 = 1  1 = 9999
    try:
        socket.connect((host,puerto))
        print "Puerto "+str(puerto)+" abierto"
        socket.close()

    except :
        print "Puerto "+str(puerto)+" cerrado."
raw_input()


Un saludo