本文目录导读:

我来介绍几种获取硬件信息的脚本方法,涵盖不同操作系统和场景:
Linux 系统脚本
综合硬件信息脚本
#!/bin/bash # 获取Linux系统硬件信息 echo "=== CPU 信息 ===" lscpu | grep -E "Model name|CPU\(s\)|Architecture" echo -e "\n=== 内存信息 ===" free -h | awk 'NR==1 || NR==2' echo -e "\n=== 磁盘信息 ===" lsblk -o NAME,SIZE,TYPE,MOUNTPOINT echo -e "\n=== 图形/显卡信息 ===" lspci | grep -i vga echo -e "\n=== 网络接口 ===" ip -br addr show echo -e "\n=== USB设备 ===" lsusb
使用dmidecode(需root权限)
#!/bin/bash # 获取DMI/SMBIOS硬件信息 echo "=== 系统信息 ===" dmidecode -t system | grep -E "Manufacturer|Product Name" echo -e "\n=== 主板信息 ===" dmidecode -t baseboard | grep -E "Manufacturer|Product Name" echo -e "\n=== BIOS信息 ===" dmidecode -t bios | grep -E "Vendor|Version" echo -e "\n=== 内存条信息 ===" dmidecode -t memory | grep -E "Size|Speed|Manufacturer|Part Number"
Windows 系统脚本
PowerShell 脚本
# 获取Windows硬件信息
Write-Host "=== CPU 信息 ===" -ForegroundColor Green
Get-CimInstance Win32_Processor |
Select-Object Name, NumberOfCores, NumberOfLogicalProcessors
Write-Host "`n=== 内存信息 ===" -ForegroundColor Green
Get-CimInstance Win32_ComputerSystem |
Select-Object @{N='TotalMemoryGB';E={[math]::Round($_.TotalPhysicalMemory/1GB,2)}}
Get-CimInstance Win32_PhysicalMemory |
Select-Object Manufacturer, Capacity, Speed
Write-Host "`n=== 磁盘信息 ===" -ForegroundColor Green
Get-PhysicalDisk |
Select-Object FriendlyName, MediaType, Size
Write-Host "`n=== 显卡信息 ===" -ForegroundColor Green
Get-CimInstance Win32_VideoController |
Select-Object Name, AdapterRAM, DriverVersion
Write-Host "`n=== 网络适配器 ===" -ForegroundColor Green
Get-NetAdapter | Where-Object Status -eq 'Up' |
Select-Object Name, InterfaceDescription, MacAddress
Write-Host "`n=== 电池信息 ===" -ForegroundColor Green
Get-CimInstance Win32_Battery |
Select-Object EstimatedChargeRemaining, BatteryStatus
使用WMIC(传统方法)
@echo off echo === CPU信息 === wmic cpu get name,numberofcores echo. echo === 内存信息 === wmic memorychip get manufacturer,capacity,speed echo. echo === 磁盘信息 === wmic diskdrive get model,size,mediatype echo. echo === 显卡信息 === wmic path win32_videocontroller get name,driverversion echo. echo === 主板信息 === wmic baseboard get manufacturer,product
跨平台 Python 脚本
使用platform模块
#!/usr/bin/env python3
import platform
import socket
import subprocess
import json
def get_system_info():
info = {}
# 基础系统信息
info['system'] = platform.system()
info['version'] = platform.version()
info['machine'] = platform.machine()
info['processor'] = platform.processor()
info['hostname'] = socket.gethostname()
return info
def get_linux_info():
"""Linux特定信息"""
import os
info = {}
# CPU信息
with open('/proc/cpuinfo') as f:
cpuinfo = f.read()
# 内存信息
with open('/proc/meminfo') as f:
meminfo = f.read().split('\n')
for line in meminfo:
if line.startswith('MemTotal'):
info['total_memory'] = line.split(':')[1].strip()
# 磁盘信息
try:
result = subprocess.check_output(['df', '-h']).decode()
info['disk'] = result
except:
pass
return info
if __name__ == "__main__":
system_info = get_system_info()
print("=== 系统信息 ===")
for key, value in system_info.items():
print(f"{key}: {value}")
if platform.system() == "Linux":
print("\n=== Linux硬件信息 ===")
linux_info = get_linux_info()
for key, value in linux_info.items():
print(f"{key}: {value}")
高级 Python 脚本(使用第三方库)
#!/usr/bin/env python3
"""使用psutil库获取硬件信息"""
import psutil
import platform
import datetime
def get_hardware_info():
info = {}
# CPU信息
info['cpu'] = {
'physical_cores': psutil.cpu_count(logical=False),
'logical_cores': psutil.cpu_count(logical=True),
'max_frequency': psutil.cpu_freq().max,
'current_frequency': psutil.cpu_freq().current,
'usage_percent': psutil.cpu_percent(interval=1)
}
# 内存信息
mem = psutil.virtual_memory()
info['memory'] = {
'total': mem.total / (1024**3), # GB
'available': mem.available / (1024**3),
'used_percent': mem.percent
}
# 磁盘信息
info['disk'] = []
for partition in psutil.disk_partitions():
try:
usage = psutil.disk_usage(partition.mountpoint)
info['disk'].append({
'device': partition.device,
'mountpoint': partition.mountpoint,
'total_gb': usage.total / (1024**3),
'used_percent': usage.percent
})
except:
pass
# 网络信息
net = psutil.net_if_addrs()
info['network'] = []
for interface, addrs in net.items():
for addr in addrs:
if addr.family == 2: # IPv4
info['network'].append({
'interface': interface,
'ip': addr.address,
'netmask': addr.netmask
})
return info
if __name__ == "__main__":
import json
hardware_info = get_hardware_info()
print(json.dumps(hardware_info, indent=2))
网络发现脚本
#!/bin/bash
# 跨平台网络硬件发现
get_mac_address() {
# Linux
if [ "$(uname)" == "Linux" ]; then
ip link show | grep ether | awk '{print $2}'
# macOS
elif [ "$(uname)" == "Darwin" ]; then
ifconfig | grep ether | awk '{print $2}'
# Windows Git Bash
else
ipconfig //all | grep "物理地址" | awk -F ': ' '{print $2}'
fi
}
echo "本机MAC地址:"
get_mac_address
echo -e "\n系统架构:"
uname -m 2>/dev/null || echo "Unknown"
使用建议
-
选择原则:
- Linux 服务器:使用 shell/bash 脚本
- Windows 管理:使用 PowerShell
- 跨平台应用:使用 Python
- 快速诊断:使用命令行工具
-
安装依赖:
# Python psutil pip install psutil
-
权限注意:
- 某些命令需要 root/管理员权限
- dmidecode 需要 root 权限
-
输出格式化:
- 建议将输出保存为 JSON 格式便于程序处理
- 可以添加时间戳和日志功能
根据你的具体需求选择合适的方法,如果需要更详细的信息,我可以针对特定硬件或场景进行补充。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播