Я знаю, что это, вероятно, действительно простое исправление, но я не могу думать о том, что я сделал неправильно.Я в тупике.После того, как порт обнаруживает, что один порт открыт, кодовый спам «не открыт», несмотря на то, что некоторые из этих портов фактически открыты.
Например, порты 135 и 445 открыты в моей сети.Когда я ввожу сканирование между 135 и 445, компьютер даже не сканирует порты, он просто спамит, что все после 135 не открыто, включая 445.
Уже пробовал:
while True:
#Shortens string of code.
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#The IP address that will be implemented into the result.
ip = str(input("\nCheck IP Address: ")).strip()
#The port number that will be implemented into the result.
port = int(input("\nCheck Port: "))
#What the script is going to check.
result = sock.connect_ex((ip, port))
#If user types 0, a complete scan will occur.
if port == 0:
#Highest/lowest port to check.
spn = int(input("\nStarting port: "))
fpn = int(input("\nFinal port: "))
print(" ")
result = sock.connect_ex((ip, spn))
while spn <= fpn:
#Prints which ports are open.
if result == 0:
print (("Port ") + str(spn) + (" is OPEN"))
#Prints which ports are not open.
else:
print (("Port ") + str(spn) + (" is NOT OPEN"))
result = sock.connect_ex((ip, spn))
spn = spn + 1
else:
#Prints if ONE port is open.
if result == 0:
print (("\nPort ") + str(port) + (" is OPEN"))
#Prints if ONE port is not open.
else:
print (("\nPort ") + str(port) + (" is NOT OPEN"))
Код должен иметь возможность проверять каждый порт отдельно, а не произносить все слова после открытия первого порта.