网络协议分析小程序exe制作 python

  • Post author:
  • Post category:python




网络协议分析小程序exe制作

问题描述:

近期在周报上讲述网络协议分析时,老师让我用代码将数据直接呈现出来,类似输入数据, 然后直接分析出基本的网络协议。

思路描述:

  • 首先用代码将所需要求的MAC、IP、端口号、IP首部中协议字段的值、TCP的首部字节编写出来
  • 然后用pyside2制作一个可视化界面
  • 最后将代码封装在界面里,将其打包成exe

在这里插入图片描述
网络协议分析题目



程序代码:

from PySide2.QtWidgets import QApplication, QMainWindow, QPushButton,  QPlainTextEdit,QMessageBox
class Stats():
    def __init__(self):
        self.window = QMainWindow()
        self.window.resize(500, 400)
        self.window.move(300, 300)
        self.window.setWindowTitle('网络协议分析')

        self.textEdit = QPlainTextEdit(self.window)
        self.textEdit.setPlaceholderText("请输入wireshark抓包数据")
        self.textEdit.move(10, 25)
        self.textEdit.resize(300, 350)

        self.button = QPushButton('分析', self.window)
        self.button.move(380, 80)

        self.button.clicked.connect(self.handleCalc)#当按钮被点击就会发出 clicked 信号,可以这样指定处理该信号的函数
    def handleCalc(self):
        info = self.textEdit.toPlainText()#通过 toPlainText 方法获取编辑框内的文本内容
        parts = info.split(' ')
        # MAC地址
        aim_mac_address = ':'.join(parts[0:6])
        source_mac_address = ':'.join(parts[6:12])
        # IP地址
        ip1 = [];ip2 = []
        for i in parts[26:30]:
            ip1.append(str(int(i, 16)))
        for j in parts[30:34]:
            ip2.append(str(int(j, 16)))
        source_ip_address = ':'.join(ip1)
        aim_ip_address = ':'.join(ip2)
        # 端口号
        source_port_number = int(parts[34] + parts[35], 16)
        aim_port_number = int(parts[36] + parts[37], 16)
        # ip首部中协议字段的值
        Protocol_fields = parts[23]
        # TCP的首部字节
        First_byte = int(str(parts[46])[0]) * 4
        QMessageBox.about(self.window,
                    '分析结果',
                    '目的MAC地址为:{}\n源MAC地址为:{}\n目的IP地址为:{}\n源IP地址为:{}\n目的端口号为:{}\n源端口号为:{}\nIP首部中协议字段的值:{}\nTCP的首部字节:{}'
                          .format(aim_mac_address,source_mac_address,aim_ip_address,source_ip_address,aim_port_number,source_port_number,Protocol_fields,First_byte)
                    )
app = QApplication([])
stats = Stats()
stats.window.show()
app.exec_()

效果图:

在这里插入图片描述

接下来是进行程序打包:

在这里插入图片描述

1.打开cmd,cd进入py文件所在的位置

2.然后输入:pyinstaller -F XXX.py –noconsole –icon=“logo.ico”

3.–noconsole为了去掉DOS黑窗口,–icon=’‘logo.ico’’为了增加应用程序图标

效果图:

在这里插入图片描述



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