Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: winnipu en 11 Agosto 2015, 11:32 am



Título: python codigo no funciona
Publicado por: winnipu en 11 Agosto 2015, 11:32 am
Hola a todos. Acabo de empezar con python, he usado otros lenguajes antes como java y cpp. Para ir familiarizandome con el lenguaje he cogido unos codigos que hay por la red y los he testeado pero tengo prolblemas con algunos. Por ejemplo os voy a poner un codigo que no me funciona y no se a que se debe. Es un simple scanner de puertos, en principio estaba diseñado para python 2.7 y ejecutado en linux. Yo estoy intentando hacerlo trabajar bajo windows y con python 3.4.3. He modificado algunas cosas en el codigo, como los parentesis para los print (que no estaban), he cambiado los raw_input por input(), pero la cosa sigue sin rular. Alguien puede decirme que anda mal en el codigo? sigue siendo cosa de usarlo en windows o de la version de python que uso?

Os pego el code:

Código:
import socket
import subprocess
import sys
from datetime import datetime



# Ask for input
remoteServer    = input("Enter a remote host to scan: ")
remoteServerIP  = socket.gethostbyname(remoteServer)

# Print a nice banner with information on which host we are about to scan
print ("-" * 60)
print ("Please wait, scanning remote host", remoteServerIP)
print ("-" * 60)

# Check what time the scan started
t1 = datetime.now()

# Using the range function to specify ports (here it will scans all ports between 1 and 1024)

# We also put in some error handling for catching errors

try:
    for port in range(1,1025):  
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        result = sock.connect_ex((remoteServerIP, port))
        if result == 0:
            print ("Port {}: \t Open".format(port))
        sock.close()

except KeyboardInterrupt:
    print ("You pressed Ctrl+C")
    sys.exit()

except socket.gaierror:
    print ('Hostname could not be resolved. Exiting')
    sys.exit()

except socket.error:
    print ("Couldn't connect to server")
    sys.exit()

# Checking the time again
t2 = datetime.now()

# Calculates the difference of time, to see how long it took to run the script
total =  t2 - t1

# Printing the information to screen
print ('Scanning Completed in: ', total)
input()



Título: Re: python codigo no funciona
Publicado por: ivancea96 en 11 Agosto 2015, 15:51 pm
Sin hacerle los cambios que comentas, ¿funciona?


Título: Re: python codigo no funciona
Publicado por: winnipu en 11 Agosto 2015, 16:01 pm
He reiniciado pc y extrañamente ha funcionado. Imagino algun problema desconocido. Aun asi, que me recomiendas 2.7 o 3.4? Por lo que veo la mayoria de los programas que se encuentran en internet estan escritos en 2.7. Hay muchas mas cosas que hayan cambiado aparte del uso de los parentesis del print y de cambios de raw_input por input?


Título: Re: python codigo no funciona
Publicado por: ivancea96 en 11 Agosto 2015, 16:11 pm
Sé que hay algunos cambios importantes entre 2.7 y 3.x que pueden dejar programas inválidos. Simplemente ten ambos intérpretes, y compila pues el que más te guste xD

Pero bueno, ya que salió 3.4, lo mejor sería andar con 3.4.


Título: Re: python codigo no funciona
Publicado por: DarK_FirefoX en 11 Agosto 2015, 16:41 pm
Después de ver este tema quise leer sobre los cambios de 2.x a 3.x y te comparto el link por si quieres leerlo. Me pareció bastante completo

https://wiki.python.org/moin/Python2orPython3 (https://wiki.python.org/moin/Python2orPython3)

También vi este, pero no lo leí, así que no se que tal está:

https://ricardo705.wordpress.com/2015/01/03/python-2-x-y-python-3-x-diferencias-de-sintaxis-en-solo-4-paginas/ (https://ricardo705.wordpress.com/2015/01/03/python-2-x-y-python-3-x-diferencias-de-sintaxis-en-solo-4-paginas/)

Salu2s


Título: Re: python codigo no funciona
Publicado por: tincopasan en 11 Agosto 2015, 18:41 pm
el code funciona, me imagino que has hecho la conversión de 2.7 a 3.4 a mano, pero python viene con una librería incorporada (2to3.py) si buscas te hace la conversión en la medida de lo posible, siempre que no use tu script modulos muy viejos (los cuales tendrias tambien que modificar).


Título: Re: python codigo no funciona
Publicado por: winnipu en 12 Agosto 2015, 01:09 am
Gracias a todos por las buenas respuestas. Miro la info que habeis pasado encantado.
Si, hice la conversion a mano.