最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用python進(jìn)行雷電接口檢測(cè)

 更新時(shí)間:2025年01月09日 09:07:11   作者:老大白菜  
這篇文章主要為大家詳細(xì)介紹了如何使用python進(jìn)行雷電接口檢測(cè),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

功能概述

這個(gè)Python腳本用于檢測(cè)系統(tǒng)的雷電(Thunderbolt)接口支持情況,包括:

檢測(cè)系統(tǒng)是否有雷電控制器

檢測(cè)Type-C/雷電端口

識(shí)別雷電接口版本(Thunderbolt 1-5)

顯示理論傳輸速度

列出已連接的雷電設(shè)備

代碼結(jié)構(gòu)

1. 基礎(chǔ)支持檢測(cè)函數(shù)

def check_thunderbolt_support() -> Dict[str, bool]

這個(gè)函數(shù)通過(guò)Windows Management Instrumentation (WMI)命令檢查系統(tǒng)的雷電支持情況,返回一個(gè)包含以下信息的字典:

has_controller: 是否存在雷電控制器

has_port: 是否有Type-C/雷電端口

is_active: 雷電接口是否處于激活狀態(tài)

2. 版本檢測(cè)函數(shù)

def get_thunderbolt_version() -> Dict[str, str]

識(shí)別系統(tǒng)支持的雷電版本,返回版本號(hào)和對(duì)應(yīng)的理論速度:

  • Thunderbolt 5: 80 Gbps (雙向), 最高120 Gbps (單向)
  • Thunderbolt 4: 40 Gbps
  • Thunderbolt 3: 40 Gbps
  • Thunderbolt 2: 20 Gbps
  • Thunderbolt 1: 10 Gbps

3. 詳細(xì)信息獲取函數(shù)

def get_detailed_thunderbolt_info() -> List[Dict[str, str]]

獲取所有已連接雷電設(shè)備的詳細(xì)信息,包括:

  • 設(shè)備名稱(chēng)
  • 制造商信息
  • 設(shè)備狀態(tài)

4. 狀態(tài)報(bào)告函數(shù)

def print_thunderbolt_status()

生成完整的雷電接口支持狀態(tài)報(bào)告,包括:

  • 主機(jī)雷電支持情況
  • 主機(jī)雷電版本信息
  • 已連接設(shè)備列表
  • 使用注意事項(xiàng)

使用方法

直接運(yùn)行腳本:

python thunderbolt_check.py

作為模塊導(dǎo)入:

from thunderbolt_check import check_thunderbolt_support, get_thunderbolt_version

# 檢查基本支持
support_info = check_thunderbolt_support()

# 獲取版本信息
version_info = get_thunderbolt_version()

注意事項(xiàng)

1.實(shí)際傳輸速度取決于:

主機(jī)支持的雷電版本

連接設(shè)備支持的雷電版本

實(shí)際會(huì)以兩者中較低的速度運(yùn)行

2.如果檢測(cè)結(jié)果顯示有雷電端口但未激活:

檢查BIOS設(shè)置中的雷電支持選項(xiàng)

確保已安裝最新的雷電驅(qū)動(dòng)程序

3.版本速度對(duì)照表:

版本理論速度備注
Thunderbolt 580/120 Gbps預(yù)計(jì)2024年底推出
Thunderbolt 440 Gbps要求更嚴(yán)格的認(rèn)證
Thunderbolt 340 Gbps最廣泛使用的版本
Thunderbolt 220 Gbps較老的版本
Thunderbolt 110 Gbps最早的版本

技術(shù)實(shí)現(xiàn)細(xì)節(jié)

使用subprocess模塊執(zhí)行WMI命令

通過(guò)正則表達(dá)式解析設(shè)備信息

支持中英文設(shè)備描述識(shí)別

異常處理確保程序穩(wěn)定運(yùn)行

可能的錯(cuò)誤和解決方案

“獲取雷電版本信息時(shí)出錯(cuò)”

確保以管理員權(quán)限運(yùn)行

檢查WMI服務(wù)是否正常運(yùn)行

“未檢測(cè)到已連接的雷電設(shè)備”

確認(rèn)設(shè)備是否正確連接

檢查設(shè)備驅(qū)動(dòng)是否正確安裝

完整代碼

import subprocess
import re
from typing import Dict, List, Tuple

def check_thunderbolt_support() -> Dict[str, bool]:
    """
    檢查系統(tǒng)是否支持雷電接口
    
    Returns:
        Dict[str, bool]: 包含雷電接口支持信息的字典
        {
            'has_controller': bool,  # 是否有雷電控制器
            'has_port': bool,        # 是否有雷電端口
            'is_active': bool        # 雷電接口是否激活
        }
    """
    result = {
        'has_controller': False,
        'has_port': False,
        'is_active': False
    }
    
    try:
        # 檢查 USB 控制器中的 Type-C 和雷電支持
        usb_controllers = subprocess.check_output(
            ["wmic", "path", "Win32_USBController", "get", "name,manufacturer"], 
            encoding='gbk'
        ).strip()
        
        if "Type-C" in usb_controllers:
            result['has_port'] = True
        
        # 檢查設(shè)備管理器中的雷電設(shè)備
        tb_devices = subprocess.check_output(
            ["wmic", "path", "Win32_PnPEntity", "where", 
             "caption like '%Thunderbolt%' OR caption like '%雷電%'", 
             "get", "caption,status"], 
            encoding='gbk'
        ).strip()
        
        if tb_devices and len(tb_devices.split('\n')) > 1:
            result['has_controller'] = True
            # 檢查是否有正在工作的雷電設(shè)備
            if "OK" in tb_devices or "正常" in tb_devices:
                result['is_active'] = True
        
        # 額外檢查 PCI 設(shè)備中的雷電控制器
        pci_devices = subprocess.check_output(
            ["wmic", "path", "Win32_PnPEntity", "where", 
             "deviceid like '%PCI%'", "get", "caption"],
            encoding='gbk'
        ).strip()
        
        if any(x in pci_devices.lower() for x in ['thunderbolt', '雷電']):
            result['has_controller'] = True
            
    except Exception as e:
        print(f"檢查雷電支持時(shí)出錯(cuò): {e}")
    
    return result

def get_detailed_thunderbolt_info() -> List[Dict[str, str]]:
    """
    獲取詳細(xì)的雷電接口信息
    
    Returns:
        List[Dict[str, str]]: 包含所有雷電設(shè)備信息的列表
    """
    devices = []
    try:
        # 獲取所有可能的雷電相關(guān)設(shè)備
        cmd_output = subprocess.check_output(
            ["wmic", "path", "Win32_PnPEntity", "where",
             "caption like '%Thunderbolt%' OR caption like '%雷電%' OR caption like '%Type-C%'",
             "get", "caption,manufacturer,status,deviceid"],
            encoding='gbk'
        ).strip()
        
        # 解析輸出
        lines = cmd_output.split('\n')
        if len(lines) > 1:  # 跳過(guò)標(biāo)題行
            headers = [h.strip().lower() for h in lines[0].split('  ') if h.strip()]
            for line in lines[1:]:
                if line.strip():
                    # 使用多個(gè)空格分割并過(guò)濾空字符串
                    values = [v.strip() for v in re.split(r'\s{2,}', line) if v.strip()]
                    if len(values) >= len(headers):
                        device = dict(zip(headers, values))
                        devices.append(device)
    
    except Exception as e:
        print(f"獲取詳細(xì)雷電信息時(shí)出錯(cuò): {e}")
    
    return devices

def get_thunderbolt_version() -> Dict[str, str]:
    """
    獲取雷電接口版本和速度信息
    
    Returns:
        Dict[str, str]: 包含雷電版本和速度信息的字典
    """
    version_info = {
        'version': 'Unknown',
        'speed': 'Unknown'
    }
    
    try:
        # 檢查設(shè)備管理器中的雷電設(shè)備描述
        tb_devices = subprocess.check_output(
            ["wmic", "path", "Win32_PnPEntity", "where",
             "caption like '%Thunderbolt%' or caption like '%雷電%'",
             "get", "caption,description"],
            encoding='gbk'
        ).strip()
        
        # 根據(jù)描述判斷版本
        if 'Thunderbolt 5' in tb_devices or '雷電 5' in tb_devices:
            version_info['version'] = 'Thunderbolt 5'
            version_info['speed'] = '80 Gbps (雙向), 最高120 Gbps (單向)'
        elif 'Thunderbolt 4' in tb_devices or '雷電 4' in tb_devices:
            version_info['version'] = 'Thunderbolt 4'
            version_info['speed'] = '40 Gbps'
        elif 'Thunderbolt 3' in tb_devices or '雷電 3' in tb_devices:
            version_info['version'] = 'Thunderbolt 3'
            version_info['speed'] = '40 Gbps'
        elif 'Thunderbolt 2' in tb_devices or '雷電 2' in tb_devices:
            version_info['version'] = 'Thunderbolt 2'
            version_info['speed'] = '20 Gbps'
        elif 'Thunderbolt' in tb_devices or '雷電' in tb_devices:
            version_info['version'] = 'Thunderbolt 1'
            version_info['speed'] = '10 Gbps'
            
    except Exception as e:
        print(f"獲取雷電版本信息時(shí)出錯(cuò): {e}")
    
    return version_info

def print_thunderbolt_status():
    """
    打印雷電接口支持狀態(tài)報(bào)告
    """
    print("=" * 50)
    print("雷電接口支持狀態(tài)檢查報(bào)告")
    print("=" * 50)
    
    # 檢查基本支持情況
    support_info = check_thunderbolt_support()
    print("\n主機(jī)雷電支持情況:")
    print(f"- 雷電控制器: {'? 已找到' if support_info['has_controller'] else '? 未找到'}")
    print(f"- Type-C/雷電端口: {'? 存在' if support_info['has_port'] else '? 不存在'}")
    print(f"- 雷電接口狀態(tài): {'? 已激活' if support_info['is_active'] else '? 未激活'}")
    
    # 獲取并顯示版本信息
    version_info = get_thunderbolt_version()
    print(f"\n主機(jī)雷電版本信息:")
    print(f"- 版本: {version_info['version']}")
    print(f"- 理論速度: {version_info['speed']}")
    
    # 獲取詳細(xì)信息
    detailed_info = get_detailed_thunderbolt_info()
    if detailed_info:
        print("\n已連接的雷電設(shè)備:")
        for idx, device in enumerate(detailed_info, 1):
            print(f"\n設(shè)備 {idx}:")
            if 'caption' in device:
                print(f"- 設(shè)備名稱(chēng): {device['caption']}")
            if 'manufacturer' in device:
                print(f"- 制造商: {device['manufacturer']}")
            if 'status' in device:
                print(f"- 狀態(tài): {device['status']}")
    else:
        print("\n未檢測(cè)到已連接的雷電設(shè)備")
    
    print("\n注意事項(xiàng):")
    if not support_info['has_controller']:
        print("- 系統(tǒng)可能不支持雷電接口")
    if support_info['has_port'] and not support_info['is_active']:
        print("- 雷電接口存在但未激活,請(qǐng)檢查BIOS設(shè)置")
    if support_info['has_controller'] and support_info['has_port']:
        print("- 系統(tǒng)支持雷電接口,如遇問(wèn)題請(qǐng)更新驅(qū)動(dòng)")
    print("- 實(shí)際傳輸速度取決于主機(jī)和設(shè)備支持的最低雷電版本")

if __name__ == "__main__":
    print_thunderbolt_status()

到此這篇關(guān)于使用python進(jìn)行雷電接口檢測(cè)的文章就介紹到這了,更多相關(guān)python雷電接口檢測(cè)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

万年县| 江津市| 读书| 黄山市| 来凤县| 澄江县| 靖西县| 贵州省| 尤溪县| 龙胜| 安陆市| 来宾市| 怀仁县| 东方市| 怀来县| 贵州省| 镇平县| 汽车| 泰安市| 靖西县| 嘉定区| 来凤县| 都江堰市| 呼玛县| 汝阳县| 中方县| 石门县| 阳东县| 中山市| 岗巴县| 土默特右旗| 武川县| 磐安县| 武清区| 花莲县| 咸丰县| 乐陵市| 锦州市| 双桥区| 博爱县| 治多县|