Answer the question
In order to leave comments, you need to log in
Why so many hyphens in console output?
I wrote the code, but when I output it to the console, I get this:
Why so many transfers?
Here is the code:
import socket # Библиотеки для работы с сетями
import threading # Импорт потоков
from colorama import Fore # Импорт цветов для текста
from colorama import init # Импорт иницилизации
init() # Иницилизация Colorama, если не сделать, на винде работать не будет
host = input('IP or host name: ') # Запрос хоста
print('--------------------------------------')
print(Fore.BLUE + '#########')
print(Fore.BLUE + '#Scaning#')
print(Fore.BLUE + '#########' + '\n')
def PortCheck(port):
# Запуск проверки порта
s = socket.socket() # Создаем сокет
s.settimeout(1)
# Проверка порта
try:
s.connect((host, port))
except socket.error:
print(Fore.RED + (str(port) + ' is closed' + '\n'))
else:
s.close
print(Fore.GREEN + (str(port) + ' is open' + '\n'))
# Порты для проверки
ports = [20, 21, 22, 23, 25, 42, 43, 53, 67, 69, 80, 110,
115, 123, 137, 138, 139, 143, 161, 179, 443, 445,
514, 515, 993, 995, 1080, 1194, 1433, 1702, 1723,
3128, 3268, 3306, 3389, 5432, 5060, 5900, 5938, 8080, 10000, 20000]
# Запуск потока для каждого порта из списка
for port in ports:
threading.Thread(target=PortCheck, args = [port]).start()
for t in threading.enumerate(): # Получаем все потоки
if t != threading.current_thread(): # Если это не текущий поток
t.join() # Ожидаем его завершения
print('--------------------------------------')
input('Process ended. Press Enter.' + '\n')
Answer the question
In order to leave comments, you need to log in
Instead of immediately displaying the ports, I saved it to an array and output it after checking all the ports using iteration
import socket # Библиотеки для работы с сетями
import threading # Импорт потоков
from colorama import Fore # Импорт цветов для текста
from colorama import init # Импорт иницилизации
init() # Иницилизация Colorama, если не сделать, на винде работать не будет
host = input('IP or host name: ') # Запрос хоста
print('--------------------------------------')
print(Fore.BLUE + '#########')
print(Fore.BLUE + '#Scaning#')
print(Fore.BLUE + '#########' + '\n')
closed_ = {}
opened_ = {}
def PortCheck(port):
# Запуск проверки порта
s = socket.socket() # Создаем сокет
s.settimeout(1)
# Проверка порта
try:
s.connect((host, port))
except socket.error:
closed_[port] = port
else:
s.close
opened_[port] = port
# Порты для проверки
ports = [20, 21, 22, 23, 25, 42, 43, 53, 67, 69, 80, 110,
115, 123, 137, 138, 139, 143, 161, 179, 443, 445,
514, 515, 993, 995, 1080, 1194, 1433, 1702, 1723,
3128, 3268, 3306, 3389, 5432, 5060, 5900, 5938, 8080, 10000, 20000]
# Запуск потока для каждого порта из списка
for port in ports:
threading.Thread(target=PortCheck, args=[port]).start()
for t in threading.enumerate(): # Получаем все потоки
if t != threading.current_thread(): # Если это не текущий поток
t.join() # Ожидаем его завершения
for port in ports:
if closed_.__contains__(port):
print(Fore.RED + (str(port) + ' is closed' + '\n'))
else:
print(Fore.GREEN + (str(port) + ' is open' + '\n'))
print('--------------------------------------')
input('Process ended. Press Enter.' + '\n')
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question