Сканер портов с использованием Python

Опубликовано: 12 Апреля, 2022

Предварительные требования: Программирование сокетов на Python

This article is just to provide a sample code to generate a Port Scanner. This Port Scanner will work for both the Web Applications as well as remote Host. This tool has been created to provide the basic functionality of a Port Scanner. The general concept of Sockets had been used to provide the functionality. Port Scanner is built on Python 3 and uses some extra libraries such as socket and pyfiglet (for a fancy banner).

Please find the below source code for the Port Scanner :
Source Code

import pyfiglet
import sys
import socket
from datetime import datetime
   
ascii_banner = pyfiglet.figlet_format("PORT SCANNER")
print(ascii_banner)
   
# Defining a target
if len(sys.argv) == 2:
      
    # translate hostname to IPv4
    target = socket.gethostbyname(sys.argv[1]) 
else:
    print("Invalid ammount of Argument")
  
# Add Banner 
print("-" * 50)
print("Scanning Target: " + target)
print("Scanning started at:" + str(datetime.now()))
print("-" * 50)
   
try:
      
    # will scan ports between 1 to 65,535
    for port in range(1,65535):
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        socket.setdefaulttimeout(1)
          
        # returns an error indicator
        result = s.connect_ex((target,port))
        if result ==0:
            print("Port {} is open".format(port))
        s.close()
          
except KeyboardInterrupt:
        print(" Exitting Program !!!!")
        sys.exit()
except socket.gaierror:
        print(" Hostname Could Not Be Resolved !!!!")
        sys.exit()
except socket.error:
        print(" Server not responding !!!!")
        sys.exit()

Выход:

Примечание. В приведенном выше коде в строке 27, т. Е. Для порта в диапазоне (1, 65535): вы можете указать свои порты в диапазоне, в котором вы должны сканировать. Этому сканеру портов обычно требуется максимум 2 минуты для вывода в формате, в котором такие-то порты открыты или закрыты.

Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.

Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.