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

这篇具有很好参考价值的文章主要介绍了基于pyqt5+scapy 根据ip 具体端口 进行扫描 的程序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

基于pyqt5+scapy 根据ip 具体端口 进行扫描 的程序,qt,tcp/ip,开发语言

先给出代码

import sys

from 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 sr1



class 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.lineEdit
        self.port=self.ui.lineEdit_2
        self.textBrowser=self.ui.textBrowser
        start=self.ui.pushButton

        start.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.ipp

            send = 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相连接 

导入 相应的扫描程序  下面给出:有点缝合怪的感觉文章来源地址https://www.toymoban.com/news/detail-796678.html

from scapy.all import *
import argparse
import logging
from scapy.layers.inet import IP, TCP
from scapy.sendrecv import sr1

def 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,445
    parser = 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()

到了这里,关于基于pyqt5+scapy 根据ip 具体端口 进行扫描 的程序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用PYQT5打开电脑摄像头并进行拍照

    目录 1 UI界面的布局 2 UI界面布局对应的代码 3 打开电脑摄像头等功能的完整代码 4 一些代码函数和优化界面代码 5 最终效果 下图是简单设计的一个UI控制的输出可视化界面。       其中, 摄像头图片显示 使用的是左边功能的 label 类、 打开摄像头拍照关闭摄像头导出图片

    2023年04月21日
    浏览(48)
  • 1.3端口扫描:利用Nmap工具进行端口扫描

    1、预备知识:Nmap介绍         nmap的功能:端口扫描、主机发现、服务/版本识别、操作系统识别、网络路由跟踪、Nmap脚本引擎;         nmap的扫描方式:Half-open scanning,默认扫描方式;TCP connect;TCP ACK scanning;TCP FIN/Xmass/NULL scanning。 2、实验条件:         攻击机:

    2024年02月06日
    浏览(57)
  • 如何扫描网址ip的特定端口或扫描全部网段

    一 nc sudo apt install netcat-openbsd 或sudo apt install ncat 二 telnet sudo apt install telnet 转义符为 ‘^]’. ctrl + ] 之后quit 或 q 三 nmap 扫描TCP开放端口 扫描UDP开放端口 需root权限 nmap 扫描整个网段

    2024年01月18日
    浏览(39)
  • 基于opencv和PyQt5的人脸识别

    目    录 一、准备工作 二、分割任务 三、代码实现阶段 1、基于opencv读取照片 2、在图片上绘制矩形 3、在读取照片成功的前提下理解视频的本质,读取视频 4、在视频上绘制矩形 5、调用人脸识别模块  6、动态调整矩形,让矩形通过人脸识别算法追踪人脸 7、调用Qt组件,创

    2024年02月03日
    浏览(52)
  • nmap 扫描内网IP, 系统, 端口

    扫描内网ip 对内网进行ARP扫描 .nmap.exe -sn 192.168.110.0/24 # 全网段 .nmap.exe -sn 192.168.110.100-200 # 100-200范围 扫描端口 .nmap.exe -sT 192.168.110.130 # 三次握手连接 较慢, 但更有效 .nmap.exe -sS 192.168.110.130 # 发送SYN 较快 .nmap.exe -sA 192.168.110.130 # 发送ACK .nmap.exe -Pn 192.168.110.130 # 发送SYN 较快

    2024年02月07日
    浏览(41)
  • 基于Pyqt5+serial的串口电池监测工具

    本章,其他的没有,废话没有,介绍一下新开源了一个公司的测试工具,写了差不多三周吧。先来看看界面: 这是一个串口调试界面,使用Pyqt5+serial完成。升级功能暂未移入,占一个坑位。 基于serial二次开发的功能各位如有需要可以照搬走,这是一个纯手写的轮子,稳定!

    2024年02月14日
    浏览(41)
  • 基于PyQt5的图形化界面开发——队列动画演示

    本文使用PyQt5制作图形化界面演示数据结构中的 队列 操作,与上一节队列动画相对应 基于PyQt5的图形化界面开发——队列动画演示 操作系统:Windows10 专业版 开发环境:Pycahrm Comunity 2022.3 Python解释器版本:Python3.8 第三方库:PyQt5 队列(Queue)是一种常用的数据结构,类似于现

    2024年02月07日
    浏览(56)
  • 基于PyQt5的UI界面开发——信号与槽

    PyQt5采用了一种被称为“信号与槽”机制的编程模式,用于处理对象间的通信和事件处理。在PyQt5中,信号(signal)是对象发出的特定事件,例如按钮被点击、文本被修改等。而槽(slot)是与信号相关联的特定动作或函数。当信号被触发时,与之相关联的槽会被自动调用。 槽

    2024年02月16日
    浏览(47)
  • 基于OpenCV和PyQt5的跳远成果展示程序

    近年来,体育运动越来越受到人们的关注,其中跳远是一项备受瞩目的运动项目。为了更好地展示运动员的跳远成果,本文将介绍一种基于OpenCV和PyQt5的跳远成果展示程序实现方法。 本文的跳远成果展示程序主要包括两个部分:一是通过读取视频中的图像,计算运动员的跳跃

    2024年02月07日
    浏览(41)
  • 基于PyQt5的图形化界面开发——自制ssh工具

    本节我们使用PyQt5来制作一个简单的ssh小工具。 操作系统:Windows10 专业版 开发环境:Pycahrm Comunity 2022.3 Python解释器版本:Python3.8 第三方库: PyQt5 和 paramiko 本节需要安装第三方库PyQt5和paramiko,如果你并不熟悉第三方库的安装,你可以参考以下文章来学习: Python第三方库安装

    2024年02月06日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包