📌  相关文章
📜  使用Python的端口扫描器

📅  最后修改于: 2022-05-13 01:55:05.865000             🧑  作者: Mango

使用Python的端口扫描器

先决条件: Python中的套接字编程

本文只是提供一个生成端口扫描器的示例代码。此端口扫描器适用于 Web 应用程序和远程主机。创建此工具是为了提供端口扫描器的基本功能。套接字的一般概念已用于提供功能。 Port Scanner 基于Python 3 构建并使用一些额外的库,例如 socket 和 pyfiglet(用于精美的横幅)。

请找到以下端口扫描器的源代码:

源代码

Python3
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 amount 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("\n Exiting Program !!!!")
        sys.exit()
except socket.gaierror:
        print("\n Hostname Could Not Be Resolved !!!!")
        sys.exit()
except socket.error:
        print("\ Server not responding !!!!")
        sys.exit()


输出:

蟒蛇端口扫描仪

注意:在上面第 27 行的代码中,即范围(1, 65535)中的端口:您可以自定义定义您必须扫描的范围内的端口。此端口扫描器通常需要最多 2 分钟的时间来生成格式输出,即某某端口打开或关闭。