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

news/2024/2/29 15:54:52/文章来源:https://blog.csdn.net/2202_75787160/article/details/135633671

先给出代码

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.luyixian.cn/news_show_926262.aspx

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

相关文章

AI人工智能工程师证书专业认证培训班有用吗?

当然有用,它即让自身技术技能有所提升,也拿到行内有含金量的证书,让自己在选择职业、升职加薪中更有竞争力。但是要擦亮眼睛,建议大家如果要找人工智能培训,就找性价比较高的培训班, 人工智能AI培训班怎么…

IP风险画像:源头防范网络攻击的全面策略

在当今数字化的时代,网络攻击呈现多样化和复杂化的趋势,为了确保网络的安全,制定全面的IP风险画像并从源头防范网络攻击是至关重要的。ip数据云将探讨如何通过建立IP风险画像来识别和应对潜在的威胁,从而实现更加安全可靠的网络环…

UML-用例图

提示:用例图是软件建模的开始,软件建模中的其他图形都将以用例图为依据。用例图列举了系统所需要实现的所有功能,除了用于软件开发的需求分析阶段,也可用于软件的系统测试阶段。 UML-用例图 一、用例图的基础知识1.用例图的构成元…

Spring Boot 3 + Vue 3实战:引入数据库实现用户登录功能

文章目录 一、实战概述二、实战步骤(一)创建数据库(二)创建用户表(三)后端项目引入数据库1、添加相关依赖2、用户实体类保持不变3、编写应用配置文件4、创建用户映射器接口5、创建用户服务类6、修改登录控制…

Linux集锦大全【持续更新】

文章目录 Linux集锦大全【持续更新】Linux最常用的几个归档和压缩命令解压方法之一 tar语法压缩文件查看压缩文件的内容解压文件 解压方法之一 zip语法参数参考实例仅保存文件名 解压命令之一 unzip基本命令指定目录解压不解压某些文件 解压命令之一 gzip Linux最危险的几个命令…

Android基于Matrix绘制PaintDrawable设置BitmapShader,以手指触点为中心显示原图像圆图,Kotlin(2)

Android基于Matrix绘制PaintDrawable设置BitmapShader,以手指触点为中心显示原图像圆图,Kotlin(2) 在 https://zhangphil.blog.csdn.net/article/details/135374279 基础上,增加一个功能,当手指在上面的图片…

元宇宙商城LightCycle如何重塑我们的数字生活

在数字化时代,元宇宙的概念不再是科幻小说中的奇思妙想,而是逐渐成为我们日常生活的一部分。在这一领域,LightCycle项目以其独特的视角和创新技术,不仅在游戏领域取得了突破,更是在重塑我们数字生活的方式方面发挥了巨…

面试题总结-分布式总结

Nginx 篇 【1】简述一下什么是Nginx,它有什么优势和功能? Nginx 是高性能的 HTTP 和反向代理的服务器,处理高并发能力是十分强大的,能经受高负载的考验,有报告表明能支持高达 50,000 个并发连接数。Nginx主要提供功能有 http服务…

免费3d模型库怎么下载?

3D模型库是提供3D模型资源下载的平台,用户可以在这里找到各种类型的3D模型,如建筑、道具、人物、动物等。那么3d模型库怎么免费下载? 1、打开3D模型库免费网站建e,并在搜索框中输入您需要的3D模型关键词,如建筑、道具、人物等。 …

操作系统概述

概述 文章目录 概述定义功能特征并发共享并发与共享的关系虚拟异步 发展与分类手工操作阶段批处理阶段分时操作系统实时操作系统网络操作系统分布式操作系统个人计算机操作系统 运行机制程序是如何运行的?内核程序应用程序特权指令非特权指令内核态用户态内核态与用…

【软件测试学习笔记1】测试基础

1.软件测试的定义 软件的定义:控制计算机硬件工作的工具 软件的基本组成:页面客户端,代码服务器,数据服务器 软件产生的过程:需求产生(产品经理),需求文档,设计效果图…

STM32之OLED显示

一、模块介绍 1、常见的显示设备 LED、数码管、点阵、LCD屏(1602/12864)、OLED屏(消费电子) 2、OLED屏的概述 OLED,即有机发光二极管(Organic Light-Emitting Diode),又称为有机电激光显示(Organic Electroluminesenc…

css宽度适应内容

废话不多说,看如下demo,我需要将下面这个盒子的宽度变成内容自适应 方法有很多,如下 父元素设置display:flex 实现子元素宽度适应内容 如下给父元素设置flex能实现宽度自适应内容 <!DOCTYPE html><html lang"en"><head><meta charset"U…

C++每日一练(15):简单幂计算

题目描述 输入两个数a和b&#xff0c;求a的b次方。 输入 输入两个整数a&#xff0c;b&#xff08;1<a<10&#xff0c;1<b<15&#xff09;。 输出 输出一个正整数&#xff0c;该值<1000000000000。 输入样例 3 3 输出样例 27 参考答案 #include<bits/stdc.h&…

C++常用类

1、QString 字符串类 QString 是Qt的字符串类&#xff0c;与C的std::string相比&#xff0c;不再使用ASCII编码。QString使用的Unicode编码。 QString 完全支持中文&#xff0c; 但是由于不同的技术可能会采用不同的编码。有时候也会遇到中文编码的一致性问题。 如果后续的学习…

无人机测绘助力实现高效、安全的城市规划

随着城市化进程的不断加快&#xff0c;城市规划显得尤为重要。而无人机测绘技术作为一种创新的工具&#xff0c;为城市规划提供了更加高效、安全的解决方案。它通过快速、精确的数据采集和分析&#xff0c;为行业提供有力的决策支持&#xff0c;助力城市规划的现代化和可持续发…

LeetCode刷题---基本计算器

解题思路&#xff1a; 根据题意&#xff0c;字符串中包含的运算符只有和- 使用辅助栈的方法来解决该问题 定义结果集res和符号位sign(用于判断对下一数的加减操作),接着对字符串进行遍历。 如果当前字符为数字字符&#xff0c;判断当前字符的下一个字符是否也是数字字符&#x…

决战排序之巅(二)

决战排序之巅&#xff08;二&#xff09; 排序测试函数 void verify(int* arr, int n) 归并排序递归方案代码可行性测试 非递归方案代码可行性测试 特点分析 计数排序代码实现代码可行性测试 特点分析 归并排序 VS 计数排序&#xff08;Release版本&#xff09;说明1w rand( ) …

Kafka 消息不能正常消费问题排查

订单宽表数据不同步 事情的起因是专员在 ze app 上查不到订单了&#xff0c;而订单数据是从 mysql 的 order_search_info 查询的&#xff0c;order_search_info 表的数据是从 oracel 的 BZ_ORDER_INFO 表同步过来的&#xff0c;查不到说明同步有问题 首先重启&#xff0c;同步…

【K8S 】K8S配置资源管理

一、Secret&#xff1a; 1、概念 用来保存密码。token&#xff0c;敏感的K8S资源 这类数据可以直接存放在镜像中&#xff0c;但是放在Secret中可以更方便的控制&#xff0c;减少暴露的风险 Secret&#xff1a;保存加密的信息 2、Secret类型&#xff1a; docker-registry&am…