Ich mache einen Port-Scanner, der prüft, ob Ports offen oder geschlossen sind, aber ich bin überzeugt, dass es nicht funktioniert, da es jeden Port als geschlossen auflistet, sogar Ports, die ich speziell geöffnet habe, nur um zu überprüfen, ob es funktioniert. Kann jemand etwas mit meinem Code falsch sehen?Wie kann ich feststellen, ob mein Port Scanner funktioniert?
if userChoice == "1":
# code for option 1
print("You selected Port Scan Tool")
loop = 0
subprocess.call('cls', shell=True)
remoteServer = input("Enter a remote host to scan: ")
start=input("Enter starting port number: ")
start = int(start)
end=input("Enter ending port number: ")
end = int(end)
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()
timestr = time.strftime("%d.%m.%Y-%H.%M.%S")# creates time stamp on text file
try:
textFileLocation = timestr + " - Port Scan Results.txt"# creates and names text file
for port in range(start, end): # lets user select range
sock = (socket.socket(socket.AF_INET, socket.SOCK_STREAM))
result = sock.connect_ex((remoteServerIP, port))
if result == 0:
print("Port {}: \t Open".format(port))
#print("Port {}: \t Closed".format(port))
#print("Port {} \t Closed".format(port))
textFileLocation = timestr + " - Port Scan Results.txt"
textFile = open(textFileLocation, "a")
textToWrite = "Open: Port %d\n" % port
textFile.write(textToWrite)
textFile.close()
else:
print("Port {}: \t Closed".format(port))
textFileLocation = timestr + " - Port Scan Results.txt"
textFile = open(textFileLocation, "a")
textToWrite = "Closed: Port %d\n" % port
textFile.write(textToWrite)
textFile.close()
sock.close()
Haben Sie die Socket-Funktion getestet, bevor Sie sie in eine Schleife setzen? Außerdem solltest du die Ausgabedatei wirklich vor der Schleife öffnen –
@ cricket_007 Es ist nicht nur open() an der falschen Stelle. Dieser Code ist, ich weiß nicht, was es ist. Schockierend buggy oder ein ähnlicher Ausdruck würde ich denken. – Dalen