Простой сканер портов с использованием сокетов в Python
Предпосылки: Программирование сокетов в Python
Прежде чем перейти к программированию, поговорим о портах. В этой статье мы проверим виртуальные порты сервера или веб-сайтов или localhost. У каждого порта есть уникальный номер. На хосте доступно 65 535 портов, начиная с 0. Мы можем назначить порты для любых сервисов.
Example 1: In this program, you can scan a number of ports in a certain range.
Python3
| # Here we import two modules, socket and time importsocketimporttime s =socket.socket(socket.AF_INET, socket.SOCK_STREAM) # here we asking for the target website# or hosttarget =input("What you want to scan?: ") # next line gives us the ip address# of the targettarget_ip =socket.gethostbyname(target)print("Starting scan on host:", target_ip) # function for scanning ports  defport_scan(port):    try:        s.connect((target_ip, port))        returnTrue    except:        returnFalse  start =time.time() # here we are scanning port 0 to 4forport inrange(5):    ifport_scan(port):        print(f"port {port} is open")    else:        print(f"port {port} is closed") end =time.time()print(f"Time taken {end-start:.2f} seconds") | 
Выход:
What you want to scan?: localhost Starting scan on host: 127.0.0.1 port 0 is closed port 1 is closed port 2 is closed port 3 is closed port 4 is closed Time taken 8.12 seconds
Примечание: вы можете изменить диапазон в цикле for для изменения количества портов, которые нужно сканировать. Для сканирования веб-сайта или хоста может потребоваться определенное время, так что наберитесь терпения.
Example 2: If you want to scan a particular port then go for this solution.
Python3
| # importing the scokets moduleimportsocket s =socket.socket(socket.AF_INET, socket.SOCK_STREAM)target =input("What you want to scan?: ") # getting the ip address using gethostbyname# functiont_IP =socket.gethostbyname(target)print("Starting scan on host: ", t_IP)  defport_scan(port):    try:        s.connect((t_IP, port))        returnTrue    except:        returnFalse  port =int(input("Enter the port number to be scanned: ")) ifport_scan(port):    print("Port", port, "is open")else:    print("port", port, "is closed") | 
Выход:
Что вы хотите просканировать ?: localhost Запуск сканирования на хосте: 127.0.0.1 Введите номер порта для сканирования: 135 Порт 135 открыт
Примечание: здесь мы сканируем localhost. Вы можете сканировать любой хост или веб-сайт. Если вы получаете какую-либо ошибку, значит, сокеты не могут подключиться к цели или, возможно, вы допустили ошибку в своем коде.
Предупреждения : Без разрешения администрации сканирование портов сервера или веб-сайта может рассматриваться как преступление. Есть много бесплатных сайтов, доступных для тестирования, вы можете ими пользоваться.
Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.
Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.