Простой сканер портов с использованием сокетов в 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 import socket import time s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # here we asking for the target website # or host target = input ( "What you want to scan?: " ) # next line gives us the ip address # of the target target_ip = socket.gethostbyname(target) print ( "Starting scan on host:" , target_ip) # function for scanning ports def port_scan(port): try : s.connect((target_ip, port)) return True except : return False start = time.time() # here we are scanning port 0 to 4 for port in range ( 5 ): if port_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 module import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) target = input ( "What you want to scan?: " ) # getting the ip address using gethostbyname # function t_IP = socket.gethostbyname(target) print ( "Starting scan on host: " , t_IP) def port_scan(port): try : s.connect((t_IP, port)) return True except : return False port = int ( input ( "Enter the port number to be scanned: " )) if port_scan(port): print ( "Port" , port, "is open" ) else : print ( "port" , port, "is closed" ) |
Выход:
Что вы хотите просканировать ?: localhost Запуск сканирования на хосте: 127.0.0.1 Введите номер порта для сканирования: 135 Порт 135 открыт
Примечание: здесь мы сканируем localhost. Вы можете сканировать любой хост или веб-сайт. Если вы получаете какую-либо ошибку, значит, сокеты не могут подключиться к цели или, возможно, вы допустили ошибку в своем коде.
Предупреждения : Без разрешения администрации сканирование портов сервера или веб-сайта может рассматриваться как преступление. Есть много бесплатных сайтов, доступных для тестирования, вы можете ими пользоваться.
Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.
Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.