Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: braulio-- en 19 Abril 2009, 19:13 pm



Título: [Python]Simple port scanner
Publicado por: braulio-- en 19 Abril 2009, 19:13 pm
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
  1. ################################
  2. # Escaner de puertos en python #
  3. ########## braulio23 ###########
  4. ###### foro.elhacker.net #######
  5. ################################
  6. import socket
  7. print "Escaner de puertos by braulio23\n"
  8. raw_input()
  9. host = raw_input("Indica el host : ")
  10. numerouno = raw_input("Primer numero del rango : ")
  11. numerodos = raw_input("Segundo numero del rango : ")
  12. socket = socket.socket()
  13. for puerto in range(int(numerouno),int(numerodos)):
  14.    try:
  15.        socket.connect((host,puerto))
  16.        print "Puerto "+str(puerto)+" abierto"
  17.        socket.close()
  18.  
  19.    except :
  20.        print "Puerto "+str(puerto)+" cerrado."
  21. raw_input()
  22.  
  23.  


Título: Re: [Python]Simple port scanner
Publicado por: Darioxhcx en 19 Abril 2009, 20:24 pm
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


Título: Re: [Python]Simple port scanner
Publicado por: braulio-- en 19 Abril 2009, 22:13 pm
Muestra todos los puertos abiertos dentro del rango que especifiques.


Título: Re: [Python]Simple port scanner
Publicado por: tcp_root en 8 Enero 2012, 20:04 pm
Podrías mejorarlo utilizando split y asi ahorrarte una variable

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