首页 > 编程语言 >让我们学习,如何使用 python 创建自己的端口扫描器

让我们学习,如何使用 python 创建自己的端口扫描器

时间:2022-09-07 10:14:06浏览次数:109  
标签:socket 端口扫描 创建 打印 端口 sys python print

让我们学习,如何使用 python 创建自己的端口扫描器

Port Scanner Python Picture

本教程仅包含用于创建端口扫描器的四个不同代码片段。这些端口扫描器将为 Web 服务和外部主机运行。该工具旨在提供端口扫描的基本功能。为了提供该功能,使用了套接字的基本概念。

本文介绍如何创建自己的功能端口扫描器。我将向您展示四种不同的端口扫描器,从 Easy → Medium → Moderate → Advanced。

准备好了吗,出发吧!!

端口扫描简单

创建一个简单的端口扫描器#!/bin/python

导入系统

导入套接字

从日期时间导入日期时间

定义我们的目标

如果 len(sys.argv) == 2:

target = socket.gethostbyname(sys.argv[1]) #将主机名翻译成 IPv4

别的:

print(“无效的参数数量”)

print(“语法:python3scanner.py ”)

添加横幅

打印(“-” * 60)

print(“使用 Kushal 的端口扫描器启动端口扫描“+target”)

print("扫描目标 "+target, "对于开放的端口 21 到 445")

print(“开始时间:”+str(datetime.now()))

打印(“-” * 60)

尝试:

对于范围内的端口(21,445):

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

socket.setdefaulttimeout(5)

result = s.connect_ex((target,port)) #返回错误指示符

如果结果 == 0:

打印(“-” * 20)

打印(“端口→”,格式(端口),“=打开”)

s.close()

除了键盘中断:

print(“\n正在退出程序。”)

sys.exit()

除了socket.gaierror:

print(“无法解析主机名。”)

sys.exit()

除了socket.error:

print(“无法连接到服务器。”)

sys.exit()

端口扫描介质

!usr/bin/python

port_scanner.py

导入套接字

print(“欢迎使用 Kushal 的端口扫描仪”)

t_host = str(input(“输入要扫描的主机IP:”)) #目标主机, www.example.com

t_ip = socket.gethostbyname(t_host) # 将 t_host 解析为 IPv4 地址

print(t_ip) # 打印IP地址

而1:

t_port = int(input(“输入端口号:”)) # 输入要扫描的端口

尝试:

袜子 = socket.socket()

res = sock.connect((t_ip, t_port))

打印(“端口{}:打开”.format(t_port))

袜子.close()

除了:

打印(“端口{}:关闭”.format(t_port))

打印(“端口扫描完成”)

端口扫描中等

!/bin/bash

构建一个内联端口扫描器

导入模块

导入套接字

袜子 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

socket.socket (socket_family, socket_kind)

tgt = input(“[+] 输入目标IP:”)

定义函数

def 扫描仪(端口):

尝试:

socks.connect((tgt, 端口))

返回真

除了:

返回假

对于范围内的端口号(1,445):#scans 端口 1 到 445

print("开始扫描 ==>", portNumber)

如果扫描仪(端口号):

print('[*] Port >', portNumber, '/tcp',”> open”)

端口扫描高级

导入 pyfiglet

导入系统

导入套接字

从日期时间导入日期时间

ascii_banner = pyfiglet.figlet_format(“端口扫描仪”)

打印(ascii_banner)

定义目标

如果 len(sys.argv) == 2:

将主机名转换为 IPv4

目标 = socket.gethostbyname(sys.argv[1])

别的:

print(“参数数量无效”)

添加横幅

打印(“-” * 50)

print(“扫描目标:” + 目标)

print(“扫描开始于:” + str(datetime.now()))

打印(“-” * 50)

尝试:

将扫描 1 到 65,535 之间的端口

对于范围内的端口(1,65535):

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

socket.setdefaulttimeout(1)

返回错误指示符

结果 = s.connect_ex((目标,端口))

如果结果 ==0:

print(“端口 {} 已打开”.format(port))

s.close()

除了键盘中断:

print(“\n 退出程序 !!!!”)

sys.exit()

除了socket.gaierror:

print(“\n 主机名无法解析!!!”)

sys.exit()

除了socket.error:

打印(“\服务器没有响应!!!!”)

sys.exit()

本教程到此结束,希望您今天学到了一些新东西。当您学习新知识时,请在您自己的机器上进行练习,不要使用这些做法和知识来伤害他人,也不要将这些技术用于任何恶意活动。本教程仅用于教育目的,本教程无意以任何方式教育或启发任何人以任何形式或形式对其他财产造成伤害。请不要作恶。

Don't be evil banner on a hand

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/22376/57050709

标签:socket,端口扫描,创建,打印,端口,sys,python,print
From: https://www.cnblogs.com/amboke/p/16664290.html

相关文章

  • [Python以终为始]Day 2–在VSCode开发
    [Python以终为始]Day2–在VSCode开发想研究机器学习的前端工程师,从零到一百学习python的笔记前置下载并安装VSCode在VSCode安装由微软开发的python套件准备开始!......
  • Python3 正则表达式
    正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。Python自1.5版本起增加了re模块,它提供Perl风格的正则表达式模式。re模块使Py......
  • 一篇文章教你如何用界面组件DevExpress WPF创建一个WPF视图模型
    DevExpressWPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpressWPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专......
  • Python3 环境搭建
    我们将向大家介绍如何在本地搭建Python3开发环境。Python3可应用于多平台包括Windows、Linux和MacOSX。Unix(Solaris,Linux,FreeBSD,AIX,HP/UX,SunOS,IR......
  • 在UNI-APP创建VUE3项目时配置VUE版本
    在UNI-APP创建项目时,默认是VUE2版本。如果直接使用VUE3代码时会出错。所以第一步就要求设置VUE版本,操作如下:打开根目录下/manifest.json文件,找到“基础配置”-->"Vue......
  • Python 取整函数汇总- round()、int()、floor()、ceil()的用法
    对每位程序员来说,在编程过程中数据处理是不可避免的,很多时候都需要根据需求把获取到的数据进行处理,取整则是最基本的数据处理。取整的方式则包括向下取整、四舍五入、向......
  • 使用 testing-library-selector 创建可重用的选择器
    使用testing-library-selector创建可重用的选择器像你们中的许多人一样,我喜欢重用代码,从而尽可能减少重复。我发现了什么测试库查询是我在不同的测试文件中一遍又一......
  • Python-wxPython
    wxPythonPython中的图形用户界面开发库Tkinter是Python官方提供的图形用户界面开发库,用于封装TkGUI工具包.PyQt是非Python官方提供的图形用户界面开发库,用于封装......
  • 用python反弹shell
    用python反弹shell攻击机:linux(本文章使用ubuntu)受害主机:安装了python的windows或者linux(本文章受害主机为kalilinux)1.配置环境:windows安装python,python官网地址:w......
  • 项目创建
    (1)新建项目(2)选择maven方式   (3)设置gav  (4)设置打包方式war包,并引入依赖  (5)添加web模块;注意:需要出现小圆点,未出现的原因,模块放错位置,或未在pom中配置<p......