基于pyqt5+scapy 根据ip 具体端口 进行扫描 的程序

先给出代码

import sysfrom PyQt5 import uic
from PyQt5.QtWidgets import *from scapy.all import *
import argparse
import logging
from scapy.layers.inet import IP, TCP
from scapy.sendrecv import sr1class MyWindow(QWidget):def __init__(self):super().__init__()self.init_ui()def init_ui(self):self.ui=uic.loadUi("./spec_port_scan.ui")self.ip=self.ui.lineEditself.port=self.ui.lineEdit_2self.textBrowser=self.ui.textBrowserstart=self.ui.pushButtonstart.clicked.connect(self.begin)def tcpScan(self,a,b):# S 代表发送SYN报文print("SSSSSSS")def begin(self):self.ipp=self.ip.text()self.portt=self.port.text().split(' ')print(self.ipp,self.portt)for p in self.portt:port = int(p)print(type(port))self.target = self.ippsend = sr1(IP(dst=self.target) / TCP(dport=port, flags="S"), timeout=2, verbose=0)if (send is None):self.textBrowser.append("ERROR")self.textBrowser.repaint()continue# 如果是TCP数据包elif send.haslayer("TCP"):# 是否是 SYN+ACK 应答if send["TCP"].flags == "SA":# 发送ACK+RST数据包完成三次握手# send_1 = sr1(IP(dst=target) / TCP(dport=port, flags="AR"), timeout=2, verbose=0)self.textBrowser.append( "[+] 扫描主机: %-13s 端口: %-5s 开放" % (self.target, port))self.textBrowser.repaint()elif send["TCP"].flags == "RA":self.textBrowser.append("[+] 扫描主机: %-13s 端口: %-5s 关闭" % (self.target, port))self.textBrowser.repaint()#self.textBrowser.repaint()#print(self.a)if __name__=='__main__':app=QApplication(sys.argv)w=MyWindow()w.ui.show()app.exec()

实现做好ui 界面 后与python相连接 

导入 相应的扫描程序  下面给出:有点缝合怪的感觉

from scapy.all import *
import argparse
import logging
from scapy.layers.inet import IP, TCP
from scapy.sendrecv import sr1def tcpScan(target,ports):for port in ports:# S 代表发送SYN报文send=sr1(IP(dst=target)/TCP(dport=port,flags="S"),timeout=2,verbose=0)if (send is None):continue# 如果是TCP数据包elif send.haslayer("TCP"):# 是否是 SYN+ACK 应答if send["TCP"].flags == "SA":# 发送ACK+RST数据包完成三次握手send_1 = sr1(IP(dst=target) / TCP(dport=port, flags="AR"), timeout=2, verbose=0)print("[+] 扫描主机: %-13s 端口: %-5s 开放" %(target,port))elif send["TCP"].flags == "RA":print("[+] 扫描主机: %-13s 端口: %-5s 关闭" %(target,port))if __name__ == "__main__":logging.getLogger("scapy.runtime").setLevel(logging.ERROR)# 使用方式: main.py -H 192.168.1.10 -p 80,8080,443,445parser = argparse.ArgumentParser()parser.add_argument("-H","--host",dest="host",help="输入一个被攻击主机IP地址")parser.add_argument("-p","--port",dest="port",help="输入端口列表 [80,443,135]")args = parser.parse_args()if args.host and args.port:tcpScan(args.host,eval(args.port))else:parser.print_help()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/628697.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【QML COOK】- 010-动态创建组件

上节介绍了Component的概念,本节介绍一下如何使用javascript动态创建对象。 1. 创建工程,新建一个MyComponent.qml的qml import QtQuickRectangle {color: "red" }它很简单就是一个红色框 2. 编辑main.qml import QtQuickWindow {id: root…

Vscode 上安装 Compilot

GitHub Copilot 是由 OpenAI 和 GitHub 开发的 AI 工具。其目的是通过自动完成代码来帮助开发人员使用集成开发环境 (IDE),如 Visual Studio Code。它目前仅作为技术预览版提供,因此只有已在候补名单上被接受的用户才能访问它。对…

MySQL 管理端口

错误 客户出现 MySQL连接数 超过 最大连接数的现象 ERROR 1040 (HY000): Too many connections 出现该现象,一般的解决方法: 1.修改配置文件中的最大连接数,之后重启数据库 2.如果配置文件中没有设置 连接超时时间的参数。8小时后&#…

xbox如何提升下载速度

Xbox下载速度慢的问题通常是由于网络环境或微软服务器的问题。以下是一些提升Xbox下载速度的方法: 使用加速器:如果您的网络环境不稳定或存在其他问题,可以使用加速器来优化网络环境,从而提高下载速度。检查网络连接:…

gin-vue-admin二开使用雪花算法生成唯一标识 id

场景介绍 需求场景: 总部采集分支的数据,由于分支的 id 是子增的主键 id,所以会出现重复的 id,但是这个 id 需要作为标识,没有实际作用,这里选择的是分布式 id 雪花算法生成 id 存储用来标识,这…

GAMES104-现代游戏引擎:从入门到实践 - 物理引擎课程笔记汇总

文章目录 0 入门资料1 物理引擎基本概念Actor & shapesRigid body dynamicsCollision DetectionCollision Resolution 应用与实践Character controllerRagdoll 0 入门资料 GAMES104-现代游戏引擎:从入门到实践_课程视频_bilibiliGAMES104官方账号 - 知乎课程主页…

微服务实战项目_天机学堂01_初识项目

文章目录 一.项目简述二.Jenkins三.模拟真实业务:紧急bug修复和代码阅读 一.项目简述 Q:天机学堂是什么? A:天机学堂是一个基于微服务架构的生产级在线教育项目 主要有两个端(项目已上线,可以点击查看): 管理后台: https://tjxt-admin.itheima.net 其核心业务主体包括老师、…

QT上位机开发(dock窗口在软件布局中的应用)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 在软件开发中,一般有主窗口和子窗口之分。主窗口也就是main window,是最重要的操作界面。子窗口就是各种属性配置、参数配置…

NOIP2018提高组day2 - T1:旅行

题目链接 [NOIP2018 提高组] 旅行 题目描述 小 Y 是一个爱好旅行的 OIer。她来到 X 国,打算将各个城市都玩一遍。 小 Y 了解到,X 国的 n n n 个城市之间有 m m m 条双向道路。每条双向道路连接两个城市。 不存在两条连接同一对城市的道路&#xff…

uniapp使用安装sass

1.首先你要安装node-sass npm install node-sass --save-dev2.安装sass-loader npm install sass-loader --save-dev3.修改style标签&#xff0c;声明使用sass <style lang"scss" scoped>

做完十年数据分析后的思考与总结

种一棵树最好的时间是十年前&#xff0c;其次是现在。十年了&#xff0c;本次分享大多来自工作中的日常所思所想&#xff0c;欢迎自取。 01 数据分析的本质 数据是基础&#xff0c;分析才是重点。 行业内有专门的统计岗&#xff0c;就是只负责做好数据统计就可以了&#xff0…

【Python】PyCharm设置控制台输出的行数限制

在使用PyCharm的时候&#xff0c;如果在控制台输出的信息过多室&#xff0c;控制台仅会保留一部分的输出信息。想要改变这个限制&#xff0c;设置方法如下&#xff1a; 进入到PyCharm的安装目录下&#xff0c;我的是C:\Develop\PyCharm202303\PyCharm 2023.3进入bin找到文件id…

sqlite | c++ | demo

sqlite 过得的废话 就不细说了 接下来&#xff0c;主要讲 安装sqlite 然后写一个demo &#xff0c;然后再shell 命令操作sqlite #安装 sqlite 程序 以及开发包 我的linux 环境是centos sudo yum install sqlite-3.7.17-8.el7_7.1.x86_64 sqlite-devel#输入 sqlite3 测试是否安装…

django后台登录:Forbidden (403) CSRF verification failed. Request aborted.

如果您在尝试登录Django后台时遇到了CSRF验证失败的错误&#xff0c;这通常意味着您的浏览器未能提交正确的CSRF令牌&#xff0c;或者Django后端未能验证该令牌。遵循以下步骤来解决这个问题&#xff1a; 清除浏览器Cookies和缓存&#xff1a; 有时候&#xff0c;浏览器的Cooki…

Linux systemd的概述与发展历程

systemd是一个系统和服务管理器&#xff0c;广泛用于现代Linux系统。它的设计目标是取代传统的SysVinit作为Linux系统的初始化系统&#xff0c;提供更快的启动速度、更好的并行性和更多的功能。本文将对systemd进行概述&#xff0c;并探讨其发展历程。 初始化系统 systemd负责…

C++:运算符重载

运算符重载的基本概念 与函数重载相似&#xff0c;运算符也存在重载问题。C为了解决一些实际问题&#xff0c;允许重载现有的大多数运算符&#xff0c;即允许给已有的运算符赋予新的含义&#xff0c;从而提高C的可扩展性&#xff0c;针对同样的操作&#xff0c;使用重载运算符…

【PostgreSQL】函数与操作符-位串函数和操作符

PostgreSQL函数与操作符-位串函数和操作符 PostgreSQL函数与操作符-位串函数和操作符描述用于检查和操作位串的函数和操作符&#xff0c;也就是操作类型为bit和bit varying的值的函数和操作符。除了常用的比较操作符之外&#xff0c;还可以使用下表里显示的操作符。&、|和…

ssh -T git@github.com Connection timed out 解决方案-自测有效

ssh -T gitgithub.com Connection timed out 解决方案-自测有效 $ ssh -T gitgithub.com $ ssh -vT gitgithub.com -p 443 OpenSSH_9.5p1, OpenSSL 3.1.4 24 Oct 2023 debug1: Reading configuration data /c/Users/Administrator/.ssh/config debug1: /c/Users/Administrator…

群晖NAS上安装部署开源工作流自动化工具n8n

一、开源工作流自动化工具n8n简介 n8n是它是一个与其他应用集成的应用程序&#xff0c;目标是自动化各应用之间的流程;利用 n8n 你可以方便地实现当 A 条件发生&#xff0c;触发 B 服务这样的自动工作流程。 n8n优点是&#xff1a;代码开源、可以自托管、下载安装方便、易于使用…

Java毕业设计第90期-基于springboot的学习英语管理系统

获取源码资料&#xff0c;请移步从戎源码网&#xff1a;从戎源码网_专业的计算机毕业设计网站 项目介绍 基于springboot的学习英语管理系统&#xff1a;前端 thymeleaf、jquery&#xff0c;后端 maven、springmvc、spring、mybatis&#xff0c;角色分为管理员、用户&#xff…