python工具打造之实现端口扫描

端口扫描器设计实现(Python) .学习Socket编程, 使用Socket编程的connect方法返回0 为连接成功,实现端口扫描器.通过本次实验, 学习了扫描器设计的基本原理,并动手设计了一个开放端口扫描器. 阅读详情

Python实现端口扫描

工欲善其事必先利其器,所以有时我们就需要编写自己的脚本工具.
下面带来python实现目标端口扫描的教程,希望对大家所帮助.

注意:从2.7版本后不再使用:optparse模块不推荐使用,python不再更新该模块,后续的发展将推荐使用argparse模块。

由于工作性质原因,3.0版本下接触会比较多这里提一点.

教程准备:

1.使用了socket库,optparse库

socket库,网络接口库,主要提供了不同进程间的通讯,以及不同网络间的进程通讯.

optparse库,主要为脚本传递命令参数功能  

2.需要知道我们是如何建立起连接的.

我们调用了socket库,并使用它建立连接,然后关闭它

import socket  
c = socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 实例化socket的类,并声明了使用的网络地址类型(socket.AF_INET),socket的类型是TCP类型(socket.SOCK_STREAM)    
c.connect((ip_addr,prot))  # 建立连接,ip_addr为目标ip,prot为目标端口  
c.close()   # 关闭连接  

3.设置我们的命令行参数,由于我们这次的教程,采用从字典中遍历端口的进行扫描的方式,所以我们设置命令行参数时,只需要指定ip地址即可,这里我们定义了一个自定义函数来实现功能

import optparse  
def opt_cmd():  
    parser = optparse.OptionParser("脚本名 -H <目标ip>")  # 当们在命令行输入错误时,进行提示  
    parser.add_option("-H",dest='ip_address',type="string",help="指定目标IP")   #在这里add_option是核心,“-H”是设置的命令参数,dest是临时变量,type用来验证用户输入的类型是否与我们设置的类型相同,help是友好提示信息,一般用来描述这个add的作用,也可以不写  
    (options,args) = parser.parse_args() # 当定义好参数后我们就需要通知optparse来解析你的命令行程序,parse_args()会返回两个值,options(一个对象包含所有选项的值),args(位置参数列表解析后剩下的选项参数)  
    addr = options.ip_address # 将临时变量dest的值给了新的变量addr
    return addr  # 返回addr,也就是我们的输入的IP   

4.读取我们的字典文件

prot_path = "port.txt"   # 我们字典文件的存储路径
def prot_file(port_path):
    port_w = open(port_path,"r")  # 读取字典内容
    port_list = duan_w.readlines() # 将读取的内容转换为列表
    return port_list  #返回这个列表  

通过上面的了解,我们应该明白
· 如何建立连接,关闭连接
· 设置命令行参数
· 调用字典

接下来附上我们的整体代码,需要说明的是,由于我的端口字典存储在和脚本相同的目录下,所以需要先cd 到同级目录下执行

import socket
import optparse  

c = socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 实例化socket的类,并声明了使用的网络地址类型(socket.AF_INET),socket的类型是TCP类型(socket.SOCK_STREAM)    
port_path = "port.txt"   # 我们字典文件的存储路径

#端口扫描  
def scan(addr,c):
    portlist = port_file(port_path)
    for i in portlist:      
        try:
            c =  socket.socket(socket.AF_INET,socket.SOCK_STREAM)
            c.connect((addr,int(i))) #建立连接
            print(str(i)+"这个端口是开启的")
            c.close()
        except:
            # ~ print(str(i)+"这个端口是关闭的")
            c.close()

#字典内容获取
def port_file(port_path):
    port_w = open(port_path,"r")  # 读取字典内容
    port_list = port_w.readlines() # 将读取的内容转换为列表
    return port_list  #返回这个列表  

#设置命令参数
def opt_cmd():  
    parser = optparse.OptionParser("脚本名 -H <目标ip>")  # 当们在命令行输入错误时,进行提示  
    parser.add_option("-H",dest='ip_address',type="string",help="指定目标IP")   #在这里add_option是核心,“-H”是设置的命令参数,dest是临时变量,type用来验证用户输入的类型是否与我们设置的类型相同,help是友好提示信息,一般用来描述这个add的作用,也可以不写  
    (options,args) = parser.parse_args() # 当定义好参数后我们就需要通知optparse来解析你的命令行程序,parse_args()会返回两个值,options(一个对象包含所有选项的值),args(位置参数列表解析后剩下的选项参数)  
    addr = options.ip_address # 将临时变量dest的值给了新的变量addr
    return addr  # 返回addr,也就是我们的输入的IP   


#进行调用  
if __name__ == "__main__":
    addr = opt_cmd()
    scan(addr,c)
Python多线程端口扫描与Socket通信实战:从原理到安全工具开发 网络编程是计算机通信的基础,其核心在于通过套接字(Socket)实现不同主机间的数据交换。Socket作为操作系统提供的抽象接口,封装了TCP/IP协议栈的底层细节,允许开发者以流或数据报的形式进行网络通信。理解Socket的工作原理,特别是TCP三次握手和连接状态管理,是构建稳定网络应用的基石。在安全工程和自动化运维领域,端口扫描作为网络探测的基础技术,通过尝试与目标主机的特定端口建立连接,来发现开放的服务和潜在的攻击面。传统单线程扫描效率低下,而多线程技术通过并发执行I/O操作,能极大提升扫描速度,这正 阅读详情

相关推荐

Python实例题:Python打造漏洞扫描器

Python打造漏洞扫描器。

shangzhiqi的博客 772

简单端口扫描器Python实现(附Python-Nmap简单使用)

最近在看《Violent Python》,记录一些代码实现。 0x00 简单端口扫描器Python实现 本例使用Socket模块用来建立TCP连接。 0x01 代码实现 import optparse import socket import threading screenLock = threading.Semaphore(value=1) def connSc

forbidd3n,keep going 1万+

【GNSS/Linux】BKG Ntrip Client (BNC) 的编译与安装

【GNSS/Linux】BKG Ntrip Client (BNC) 的编译与安装 1. BNC软件 1.1 软件介绍 The BKG Ntrip Client (BNC) is an Open Source multi-stream client program designed for a variety of real-time GNSS applications. It was primarily designed for receiving data streams from any Ntrip

小马甲的新马甲 7801

python nmap网络扫描详解

NMAP简介 NMap,也就是Network Mapper,最早是Linux下的网络扫描和嗅探工具包。 nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting)。它是网络管理员必用的软件之一,以及用以评估网络系统安全。 正如大多数被用于网络安全的工具,nmap 也是不少黑客及骇客(又称脚本小子)爱用的工具 。系统管理员可以利用nmap来探测工作环境中未经批准使用的服务器,但是黑客会利用nmap来

爱死亡机器人 3552

光模块的封装工艺有哪些?

COB封装传统的单路10Gb/s或25Gb/s速率的光模块采用SFP封装将电芯片和TO封装的光收发组件焊接到PCB板上组成光模块。但对于40G及以上速率的高速光模块,受激光器速率限制(多为25G),主要通过多通道并行实现,如40G由4×10G实现,而100G则由4×25G实现。蝶形封装:壳体通常为长方体,结构及实现功能通常比较复杂,可以内置制冷器、热沉、陶瓷基块、芯片、热敏电阻、背光监控,并且可以支持所有以上部件的键合引线。BOX封装属于蝶形封装的一种,用于多通道并行封装。

WaytoICT- Explore ICT Technology, Build Your Tech Path 3806

BioEmu:微软黑科技炸场!生成式AI重构蛋白质模拟:千倍效率碾压传统计算,新药研发周期砍半

BioEmu 是微软推出的生成式深度学习系统,可在单个 GPU 上每小时生成数千种蛋白质结构样本,支持模拟动态变化、预测热力学性质,并显著降低计算成本。

士多啤梨先生の博客 1097

用Python代码编写一个简单的nmap扫描工具

NMAP是一款开源的网络探测和安全审核的工具,他能够快速的扫描出某个服务器对外暴露的端口信息。是在安全测试领域很常见的一个工具。今天我们用python的模拟实现一个简单版本...

专注测试领域知识分享和技能提升 6208

3台虚拟机部署Doris详细文档(含校验步骤)

摘要:本文详细介绍了Apache Doris在3台虚拟机上的集群部署方案。采用1主FE+1从FE+1观察者FE+3BE的混合部署模式,确保元数据高可用性。硬件配置建议测试环境4核16GB内存,生产环境8核64GB内存。部署步骤包括系统环境配置(关闭防火墙、内核参数优化)、FE/BE节点配置启动、集群初始化验证等。重点配置了IP白名单(172.30.0.115)和数据目录(/data/doris)。通过MySQL客户端和WebUI可监控集群状态,实现千万级数据的实时分析能力,后续可通过增加BE节点线性扩展。

weixin_41026747的博客 932

使用Python编写网络扫描程序

使用Python编写网络扫描程序 ​ 网络扫描程序通过向成百上千台计算机发送请求并分析其响应,扫描第2层和第3层网络中指定范围内的网络ID。利用某些扩展技术,网络扫描程序还可以获得通过Samba和NetBIOS协议提供的共享资源,以及运行共享协议的服务器上未受保护的数据。在渗透测试中也会用到网络扫描程序——白帽黑客模拟对网络资源的攻击以发现漏洞并评估公司的安全性。渗透测试的最终目的是生成一个包含目标系统中所有缺陷的报告,帮助用户针对潜在的攻击提升安全策略。 ​ 使用Python编写网路扫描程序,Pyt

Bruce_xiaowei的博客 2045

Jetbrains IDE 配置上Gemini Code 插件,让你的的编程高效起飞~

Gemini Code Assist是 Google 家产品,基座模型为最新的Gemini 2.5 Pro。本篇实践了在 WebStrom 中Gemini Code Assist插件的高效编程。

2301_76993408的博客 4594

记录——影刀RPA高级操作题(二)——使用影刀RPA内置包和”Xpath“获取数据,获取数据写入目标MySQL

【代码】记录——影刀RPA高级操作题(二)——使用影刀RPA内置包和”Xpath“获取数据,获取数据写入目标MySQL。

m0_74824002的博客 842

python爬虫能作为渗透工具吗_国内顶尖白帽子用Python打造渗透工具集,当时花上万购买都被拒!...

前言python是门简单易学的语言,强大的第三方库让我们在编程中事半功倍,今天我们就来谈谈python在渗透测试中的应用,让我们自己动手打造自己的渗透工具集。一、信息搜集--py端口扫描小脚本端口扫描是渗透测试中常用的技术手段,发现敏感端口,尝试弱口令或者默认口令爆破也是常用的手段,之前自学python时候百度着写了个小脚本。端口扫描小脚本:对于端口扫描技术,其实分很多种,通常是利用tcp协议的三...

weixin_39703561的博客 1065

PostgreSQL的学习心得和知识总结(八十二)|深入理解PostgreSQL数据库SQL语句的词法解析和语法解析流程

postgresql 词法解析语法解析流程

孤傲小二~阿沐的博客 5448

pySecurity端口扫描实战:用Python打造你的第一个网络安全工具

pySecurity是一个专注于Python网络安全教程的项目,通过它你可以快速掌握网络安全工具开发的核心技能。本文将带你从零开始,用Python构建一个实用的端口扫描工具,让你轻松入门网络安全领域。 ## 🚀 为什么选择Python进行端口扫描开发? Python凭借其简洁的语法和丰富的库支持,成为网络安全工具开发的首选语言。使用Python开发端口扫描工具具有以下优势: - 代码量少,开

gitblog_00465的博客 490

【A_Star三维路径规划】基于matlab A_Star算法结合B样条平滑三维地形路径规划(含雷达威胁)【含Matlab源码 3527期】

A_Star算法结合B样条平滑三维地形路径规划(含雷达威胁) 完整代码,包运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 741

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

用快马AI三分钟打造你的Telnet端口扫描神器

现在排查服务器问题效率高多了,输入IP段就能批量检测常用端口。虽然Telnet本身不够安全,但内网环境配合这个工具确实事半功倍。平台的多模型支持也很给力,遇到问题随时可以换AI模型给建议。能快速开发网络工具,就试着做了个自动化端口扫描程序,分享下实现过程。最近工作中经常需要检查服务器端口状态,手动一个个敲。用tkinter构建简单GUI界面,降低使用门槛。扩展需求:导出扫描报告、响应速度优化。添加导出按钮,支持生成CSV格式报告。加入扫描进度显示,提升用户体验。

AmberLeopard26的博客 700

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

基于快马AI平台3分钟打造专业级Telnet端口扫描工具

整个过程中最惊喜的是不需要自己处理复杂的多线程和网络通信代码,平台生成的代码已经包含了这些核心功能。作为经常要做网络调试的运维人员,这个工具现在已经成为我的日常必备,推荐有类似需求的同行试试用AI辅助开发,效率提升真的立竿见影。1. 只需用自然语言描述需求(如"创建一个能扫描Telnet端口的Python工具,要显示开放状态和响应时间"),AI会在10秒内生成基础代码框架。能快速生成这类工具,于是尝试用它的AI编程功能制作了一个轻量级Telnet端口扫描器。

CyanWave34的博客 1005

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

python写渗透工具下载_python打造渗透工具集

前言python是门简单易学的语言,强大的第三方库让我们在编程中事半功倍,今天我们就来谈谈python在渗透测试中的应用,让我们自己动手打造自己的渗透工具集。一、信息搜集--py端口扫描小脚本端口扫描是渗透测试中常用的技术手段,发现敏感端口,尝试弱口令或者默认口令爆破也是常用的手段,之前自学python时候百度着写了个小脚本。端口扫描小脚本:#coding: utf-8import socketi...

weixin_39787057的博客 348

python打造渗透工具集

python是门简单易学的语言,强大的第三方库让我们在编程中事半功倍,今天我们就来谈谈python在渗透测试中的应用,让我们自己动手打造自己的渗透工具集。 难易程度:★★★阅读点:python;web安全;文章作者:xiaoye文章来源:i春秋关键字:网络渗透技术 一、信息搜集–py端口扫描小脚本端口扫描是渗透测试中常用的技术手段,发现敏感端口,尝试弱口令或者默认口令爆破...

dfdhxb995397的博客 231

如何用Spoilerwall打造终极网络防护:让端口扫描者瞬间崩溃的电影剧透神器

Spoilerwall是一款革命性的网络防护工具,它通过在所有端口返回电影剧透内容来阻止端口扫描,为你的网络安全带来全新的防护体验。本文将详细介绍这个创新工具的安装配置方法和使用技巧,帮助你快速部署这个"邪恶"又有效的网络安全解决方案。 ## 🚀 什么是Spoilerwall? Spoilerwall引入了网络加固领域的全新概念——通过在所有端口剧透电影内容来避免被扫描!其核心原理是"电影剧

gitblog_00315的博客 799

自己动手python打造渗透工具集

难易程度:★★★阅读点:python;web安全;文章作者:xiaoye文章来源:i春秋关键字:网络渗透技术 前言python是门简单易学的语言,强大的第三方库让我们在编程中事半功倍,今天我们就来谈谈python在渗透测试中的应用,让我们自己动手打造自己的渗透工具集。一、信息搜集--py端口扫描小脚本端口扫描是渗透测试中常用的技术手段,发现敏感端口,尝试弱口令或者默认口令爆破也是常...

dfdhxb995397的博客 447

python全自动化渗透工具下载_python打造渗透工具集

"python是门简易易懂的語言,强劲的第三方平台库我们一起在程序编写中事倍功半,今日人们就来谈一谈python在渗透测试中的运用,我们一起动手做打造出自个的渗入工具集。难度系数水平:★★★阅读文章点:python;web安全性;稿子创作者:xiaoye文章来源:i秋春关键词:互联网渗入技术性一、信息内容收集–py端口扫描小脚本制作端口扫描是渗透测试中常见的方式方法,发觉比较敏感端口号,试着弱动态...

weixin_39630999的博客 308

Python打造一款多线程端口扫描器

  from socket import *   import threading   lock=threading.Lock() #线程锁   num=0   def Scanner(host,port):   global num   try:   s=socket(AF_INET,SOCK_STREAM) #建立socket连接   s.connect((host,port)) #连接   lock.acquire() #加锁   num+=1   print('Port %..

wubaohu1314的博客 432

Python安全开发学习之路(十九):打造你的第一个安全利器——端口扫描器

本文介绍如何使用Python开发一个功能完善的TCP端口扫描器,重点讲解三个核心技术:1) 使用argparse库构建灵活的命令行接口;2) 通过ThreadPoolExecutor实现多线程并发扫描;3) 设计结构化的扫描结果输出。该工具支持IP/域名解析、自定义端口范围和并发线程数,并提供了异常处理和进度显示。文章还提出了服务版本检测、UDP扫描等后续改进方向,展示了从简单脚本到专业工具的完整开发流程。

专注于网络安全攻防技术与安全运营(SecOps)实践。 416

用Python+Tkinter打造专业级端口扫描器

本文将通过20个关键知识点,深入讲解端口扫描器的开发过程,不仅提供完整代码,还将剖析网络安全核心原理与GUI开发技巧。

weixin_69882801的博客 439

**红队工具实战:用Python打造轻量级端口扫描器与漏洞探测自动化脚本**在红队渗透测试中,信息

这个工具虽小,但具备**可集成性、可调试性和实用性*8,非常适合红队成员快速构建自己的信息收集链。✅ 添加代理支持(绕过防火墙)✅ 支持UDP端口扫描(如DNS、SNMP)✅ 结合API接口自动上传扫描结果(如Slack通知)✅ 加入图形化界面(Tkinter / PyQt)🔍 提醒:此工具仅用于合法授权的安全测试,请勿滥用!✅ 文章总字数:约1850字✅ 包含真实可运行代码片段✅ 不含AI痕迹、无模板提示语✅ 符合优快云专业博文风格,适合发布直接复制粘贴即可发帖,无需修改。

A121414142342的博客 282
上一篇: linux密码暴力破解之SHA-512破解
下一篇: python实现文件上传下载
红酒味蛋糕_
博客等级 码龄9年 1267粉丝 74原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值