标签 python 下的文章

import subprocess
import re
import socket
from scapy.all import sr1, IP, ICMP
def get_mac_address(ip):
    try:
        # 执行arp命令来查找IP对应的MAC地址
        result = subprocess.run(['arp', '-a'], capture_output=True, text=True, check=True)
        output = result.stdout
        # 解析输出,注意Windows上的输出格式可能与Linux不同
        match = re.search(rf'{ip}\s+([0-9a-fA-F-]+)', output)
        if match:
            return match.group(1)
        else:
            return None
    except subprocess.CalledProcessError as e:
        print(f"Error: {e}")
        return None
 
def ping(host):
    # 创建一个ICMP请求数据包
    packet = IP(dst=host)/ICMP()
    # 发送数据包并接收响应
    reply = sr1(packet, timeout=1, verbose=False)
    # 检查是否收到回复
    if reply is not None and reply.haslayer(ICMP):
        return True
    else:
        return False

ip_address = "192.168.0.254"
mac_address = get_mac_address(ip_address)
print(f"MAC Address: {mac_address}")
print(f"IP: {ip_address}")
if ping(ip_address):
    print(f"{ip_address} is active.")
else:
    print(f"{ip_address} is die.")

import sys
import sqlite3
from dotenv import load_dotenv
from os import getenv
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
#读取配置信息
load_dotenv()
#主窗口
class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.initializeUI()
    def initializeUI(self):
        # 设置窗口标题和初始大小
        self.setWindowTitle(getenv("APP_NAME"))
        self.setGeometry(100, 100, 600, 400)
        
        # 创建菜单栏对象
        menubar = QMenuBar(self)
        self.setMenuBar(menubar)  # 将菜单栏设置到窗口中
        
        # 创建菜单对象
        fileMenu = menubar.addMenu('文件(&F)')
        editMenu = menubar.addMenu('编辑(&E)')
        helpMenu = menubar.addMenu('帮助(&H)')
        
        # 创建动作(Action)并添加到菜单中
        exitAction = QAction(QIcon('exit.png'), '退出', self)
        exitAction.setShortcut('Ctrl+Q')
        exitAction.setStatusTip('退出应用程序')
        #exitAction.triggered.connect(qApp.quit)
        exitAction.triggered.connect(self.opensecond)

        
        fileMenu.addAction(exitAction)  # 将动作添加到文件菜单中
        
        # 添加其他动作到编辑和帮助菜单中(示例)
        newAction = QAction(QIcon('new.png'), '新建', self)  # 假设你有一个new.png图标文件
        newAction.setShortcut('Ctrl+N')
        newAction.setStatusTip('新建文件')
        editMenu.addAction(newAction)
   
        aboutAction = QAction('关于', self)
        aboutAction.setStatusTip('关于本应用')
        helpMenu.addAction(aboutAction)
    windowList = []
    def opensecond(self):
                    the_window =SecondWindow()
                    self.windowList.append(the_window)
                    self.close()
                    the_window.show()

#第二个窗口
class SecondWindow(QMainWindow):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.setWindowTitle('第二主界面')
        self.label = QLabel()
        self.label.setText("第二个主界面")
        self.label.setSizePolicy(QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding))
        self.label.setAlignment(Qt.AlignCenter)
        self.label.setFont(QFont("Roman times", 50, QFont.Bold))
        self.setCentralWidget(self.label)
        self.statusBar().showMessage("当前用户:一心狮")
        self.showMaximized()
    windowList = []
    #重写关闭返回当前窗口
    def closeEvent(self, event):
        the_window = MainWindow()
        self.windowList.append(the_window)
        the_window.show()
        event.accept()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    mainWin = MainWindow()
    mainWin.show()
    sys.exit(app.exec_())

python下载与安装

一、下载部分

1.打开官网,选择最新版。当前是3.10.7

官网下载地址:https://www.python.org/downloads/
8.png

2.点击下载,官网则默认根据系统位数下载对应的版本。

9.png

3.下载其他版本

10.png

4.或者你觉得官网太慢,可以点击下面的附件

python-3.10.7-amd64

python-3.10.7-amd64.zip

二、安装部分
由于小鱼哥还在使用远古的操作系统win7 64bit 所以安装不了最新版的python-3.10.7
11.png
12.png

看来老老实实走1.3下载其他版本的python.exe了

根据官方的版本查阅表:https://www.python.org/downloads/windows/

全是Note that Python 3.10.1 cannot be used on Windows 7 or earlier.

警告:python xx不支持win7及更早的系统

最终在茫茫中找到Python 3.8.10适用

下面是附件适合window7 sp1的64bit版本

python-3.8.10
python-3.8.10-amd64.zip

其他问题:

Python 3.8.10 安装时候需要window 7更新到KB2533623的补丁
Windows6.1-KB2533623-x64
Windows6.1-KB2533623-x64.zip