J'ai suivi un guide sur la façon de faire un simple scanner de port, j'essaie de numériser mon propre IP, mais il se coince dans une boucle et n'imprime pas de ports. Il est difficile de comprendre à ce qu'il ne donne aucune erreur et se coince dans une boucle.Python Port Scanner coincé en boucle
Toute aide serait grandement appréciée.
import socket
import subprocess
import sys
from datetime import datetime
#clears the shell screen
subprocess.call('clear', shell=True)
#ask for input
remoteServer = raw_input("Please enter a host to scan:")
remoteServerIP = socket.gethostbyname(remoteServer)
#print a banner saying we are scanning
print "-" * 60
print "now scanning your host...", remoteServerIP
print "-" * 60
#Check what time the scan started
t1 = datetime.now()
# Using the range function to specify which ports (1 - 1025)
#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:
#if the socket is listening it will print out the port
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 to IP. Exiting'
sys.exit()
except socket.error:
print "couldn't connect to server"
sys.exit()
# checking the time again
t2 = datetime.now()
#calculates the differnce of time, to see how long it took to run the script
total = t2 - t1
#printing the info to screen
print "scanning compelte in :", total
vous êtes sûr que vous ne recevez pas de message d'erreur lorsque vous exécutez dans la console/Termina/cmd.exe/Powershell? Peut-être mettre plus 'print()' pour voir quel port pose problème. – furas
BTW: quant à moi l'écran de nettoyage est inutile - vous ne pouvez pas comparer le résultat actuel avec le précédent. – furas
que voulez-vous dire par "coincé dans une boucle"? –