0

0

JavaScript获取客户端计算机硬件及系统等信息的方法

高洛峰

高洛峰

发布时间:2016-10-15 17:57:05

|

2167人浏览过

|

来源于php中文网

原创

javascript 获取客户端计算机硬件及系统信息 
通过wmi来实现获取客户端计算机硬件及系统信息: 

function getSysInfo(){ 
var locator = new ActiveXObject ("WbemScripting.SWbemLocator"); 
var service = locator.ConnectServer("."); 
//CPU信息 
var cpu = new Enumerator (service.ExecQuery("SELECT * FROM Win32_Processor")).item(); 
var cpuType=cpu.Name,hostName=cpu.SystemName; 
//内存信息 
var memory = new Enumerator (service.ExecQuery("SELECT * FROM Win32_PhysicalMemory")); 
for (var mem=[],i=0;!memory.atEnd();memory.moveNext()) mem[i++]={cap:memory.item().Capacity/1024/1024,speed:memory.item().Speed} 
//系统信息 
var system=new Enumerator (service.ExecQuery("SELECT * FROM Win32_ComputerSystem")).item(); 
var physicMenCap=Math.ceil(system.TotalPhysicalMemory/1024/1024),curUser=system.UserName,cpuCount=system.NumberOfProcessors 

return {cpuType:cpuType,cpuCount:cpuCount,hostName:hostName,curUser:curUser,memCap:physicMenCap,mem:mem} 
}

代码实现主要包括这几部分: 

先通过new ActiveXObject ("WbemScripting.SWbemLocator"); 访问到WbemScripting对象。 
通过locator.ConnectServer(".");连接我们本地电脑(.代表本地电脑,当然 
也可以访问其他计算机)。 
通过service.ExecQuery("SELECT * FROM Win32_Processor")这个类似sql的语句(其实系统信息也是存储在计算中一个类似数据库的文件中)获取我们需要的对象的记录集。 
通过new Enumerator来创建一个可枚举的对象,下面就可以遍历取信息了。 

注意:运行的前提是要修改浏览器安全设置,“允许对未标记为可安全执行的ActiveX 
脚本的运行”。 
这里主要取了CPU、内存及系统用户几个信息,大家利用WMI的API或者借助JSEDIT获取 
到更多的信息。下面列出了常用信息的类: 

Win32_Processor // CPU 处理器 

Win32_PhysicalMemory // 物理内存 

Win32_Keyboard // 键盘 

Win32_PointingDevice // 点输入设备,如鼠标 

Win32_DiskDrive // 硬盘驱动器 

Win32_CDROMDrive // 光盘驱动器 

Win32_BaseBoard // 主板 

Win32_BIOS // BIOS 芯片 

Win32_ParallelPort // 并口 

Win32_SerialPort // 串口 

Win32_SoundDevice // 多媒体设置 

Win32_USBController // USB 控制器 

Win32_NetworkAdapter // 网络适配器 

Win32_NetworkAdapterConfiguration // 网络适配器设置 

Win32_Printer // 打印机 

Win32_PrinterConfiguration // 打印机设置 

Win32_PrintJob // 打印机任务 

Win32_TCPIPPrinterPort // 打印机端口 

Win32_POTSModem // MODEM 

Win32_POTSModemToSerialPort // MODEM 端口 

Win32_DesktopMonitor // 显示器 

Win32_VideoController // 显卡细节。 

Win32_VideoSettings // 显卡支持的显示模式。 

Win32_TimeZone // 时区 

Win32_SystemDriver // 驱动程序 

Win32_DiskPartition // 磁盘分区 

Win32_LogicalDisk // 逻辑磁盘 

Win32_LogicalMemoryConfiguration // 逻辑内存配置 

Win32_PageFile // 系统页文件信息 

Win32_PageFileSetting // 页文件设置 

Win32_BootConfiguration // 系统启动配置 

Win32_OperatingSystem // 操作系统信息 

Win32_StartupCommand // 系统自动启动程序 

Win32_Service // 系统安装的服务 

Win32_Group // 系统管理组 

Win32_GroupUser // 系统组帐号 

Win32_UserAccount // 用户帐号 

Win32_Process // 系统进程 

Win32_Thread // 系统线程 

Win32_Share // 共享 

Win32_NetworkClient // 已安装的网络客户端 

Win32_NetworkProtocol // 已安装的网络协议 

WMI Win32类的完整信息及详细列表请参考MSDN: 
http://msdn2.microsoft.com/en-us/library/aa394084(VS.85).aspx 

示例: 

怪兽AI数字人
怪兽AI数字人

数字人短视频创作,数字人直播,实时驱动数字人

下载
function button1_onclick() {//cpu 信息 
var locator = new ActiveXObject ("WbemScripting.SWbemLocator"); 
var service = locator.ConnectServer("."); 
var properties = service.ExecQuery("SELECT * FROM Win32_Processor"); 
var e = new Enumerator (properties); 
document.write(""); 
for (;!e.atEnd();e.moveNext ()) 
{ 
var p = e.item (); 
document.write(""); 
document.write(""); 
document.write(""); 
document.write(""); 
document.write(""); 
document.write(""); 
document.write(""); 
document.write(""); 
document.write(""); 
document.write(""); 
document.write(""); 
} 
document.write("
" + p.Caption + "" + p.DeviceID + "" + p.Name + "" + p.CpuStatus + "" + p.Availability + "" + p.Level + "" + p.ProcessorID + "" + p.SystemName + "" + p.ProcessorType + "
"); } function Button2_onclick() {//CD-ROM 信息 var locator = new ActiveXObject ("WbemScripting.SWbemLocator"); var service = locator.ConnectServer("."); var properties = service.ExecQuery("SELECT * FROM Win32_CDROMDrive"); var e = new Enumerator (properties); document.write(""); for (;!e.atEnd();e.moveNext ()) { var p = e.item (); document.write(""); document.write(""); document.write(""); document.write(""); document.write(""); document.write(""); document.write(""); } document.write("
" + p.Caption + "" + p.Description + "" + p.Drive + "" + p.Status + "" + p.MediaLoaded + "
"); } function Button3_onclick() {//键盘信息 var locator = new ActiveXObject ("WbemScripting.SWbemLocator"); var service = locator.ConnectServer("."); var properties = service.ExecQuery("SELECT * FROM Win32_Keyboard"); var e = new Enumerator (properties); document.write(""); for (;!e.atEnd();e.moveNext ()) { var p = e.item (); document.write(""); document.write(""); document.write(""); document.write(""); document.write(""); } document.write("
" + p.Description + "" + p.Name + "" + p.Status + "
"); } function Button4_onclick() {//主板信息 var locator = new ActiveXObject ("WbemScripting.SWbemLocator"); var service = locator.ConnectServer("."); var properties = service.ExecQuery("SELECT * FROM Win32_BaseBoard"); var e = new Enumerator (properties); document.write(""); for (;!e.atEnd();e.moveNext ()) { var p = e.item (); document.write(""); document.write(""); document.write(""); document.write(""); document.write(""); document.write(""); document.write(""); document.write(""); } document.write("
" + p.HostingBoard + "" + p.Manufacturer + "" + p.PoweredOn + "" + p.Product + "" + p.SerialNumber + "" + p.Version + "
"); }

另外,通过以下方式也可以获得系统的相关信息:

WMI Scripting HTML 
 
 

 

 
 
 
 
 

其实最关键的还是用到两个ActiveX: 
 
 
不过这两个ActiveX都是系统自带,不用去下载或注册。 
接下来的工作就是用脚本和ActiveX交互 

 
 
 
 
 
 
 
 

class Win32_NetworkAdapterConfiguration : CIM_Setting 
{ 
boolean ArpAlwaysSourceRoute; 
boolean ArpUseEtherSNAP; 
string Caption; 
string DatabasePath; 
boolean DeadGWDetectEnabled; 
string DefaultIPGateway[]; 
uint8 DefaultTOS; 
uint8 DefaultTTL; 
string Description; 
boolean DHCPEnabled; 
datetime DHCPLeaseExpires; 
datetime DHCPLeaseObtained; 
string DHCPServer; 
string DNSDomain; 
string DNSDomainSuffixSearchOrder[]; 
boolean DNSEnabledForWINSResolution; 
string DNSHostName; 
string DNSServerSearchOrder[]; 
boolean DomainDNSRegistrationEnabled; 
uint32 ForwardBufferMemory; 
boolean FullDNSRegistrationEnabled; 
uint16 GatewayCostMetric[]; 
uint8 IGMPLevel; 
uint32 Index; 
uint32 InterfaceIndex; 
string IPAddress[]; 
uint32 IPConnectionMetric; 
boolean IPEnabled; 
boolean IPFilterSecurityEnabled; 
boolean IPPortSecurityEnabled; 
string IPSecPermitIPProtocols[]; 
string IPSecPermitTCPPorts[]; 
string IPSecPermitUDPPorts[]; 
string IPSubnet[]; 
boolean IPUseZeroBroadcast; 
string IPXAddress; 
boolean IPXEnabled; 
uint32 IPXFrameType[]; 
uint32 IPXMediaType; 
string IPXNetworkNumber[]; 
string IPXVirtualNetNumber; 
uint32 KeepAliveInterval; 
uint32 KeepAliveTime; 
string MACAddress; 
uint32 MTU; 
uint32 NumForwardPackets; 
boolean PMTUBHDetectEnabled; 
boolean PMTUDiscoveryEnabled; 
string ServiceName; 
string SettingID; 
uint32 TcpipNetbiosOptions; 
uint32 TcpMaxConnectRetransmissions; 
uint32 TcpMaxDataRetransmissions; 
uint32 TcpNumConnections; 
boolean TcpUseRFC1122UrgentPointer; 
uint16 TcpWindowSize; 
boolean WINSEnableLMHostsLookup; 
string WINSHostLookupFile; 
string WINSPrimaryServer; 
string WINSScopeID; 
string WINSSecondaryServer; 
};
java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
go语言 注释编码
go语言 注释编码

本专题整合了go语言注释、注释规范等等内容,阅读专题下面的文章了解更多详细内容。

2

2026.01.31

go语言 math包
go语言 math包

本专题整合了go语言math包相关内容,阅读专题下面的文章了解更多详细内容。

1

2026.01.31

go语言输入函数
go语言输入函数

本专题整合了go语言输入相关教程内容,阅读专题下面的文章了解更多详细内容。

1

2026.01.31

golang 循环遍历
golang 循环遍历

本专题整合了golang循环遍历相关教程,阅读专题下面的文章了解更多详细内容。

0

2026.01.31

Golang人工智能合集
Golang人工智能合集

本专题整合了Golang人工智能相关内容,阅读专题下面的文章了解更多详细内容。

1

2026.01.31

2026赚钱平台入口大全
2026赚钱平台入口大全

2026年最新赚钱平台入口汇总,涵盖任务众包、内容创作、电商运营、技能变现等多类正规渠道,助你轻松开启副业增收之路。阅读专题下面的文章了解更多详细内容。

76

2026.01.31

高干文在线阅读网站大全
高干文在线阅读网站大全

汇集热门1v1高干文免费阅读资源,涵盖都市言情、京味大院、军旅高干等经典题材,情节紧凑、人物鲜明。阅读专题下面的文章了解更多详细内容。

73

2026.01.31

无需付费的漫画app大全
无需付费的漫画app大全

想找真正免费又无套路的漫画App?本合集精选多款永久免费、资源丰富、无广告干扰的优质漫画应用,涵盖国漫、日漫、韩漫及经典老番,满足各类阅读需求。阅读专题下面的文章了解更多详细内容。

67

2026.01.31

漫画免费在线观看地址大全
漫画免费在线观看地址大全

想找免费又资源丰富的漫画网站?本合集精选2025-2026年热门平台,涵盖国漫、日漫、韩漫等多类型作品,支持高清流畅阅读与离线缓存。阅读专题下面的文章了解更多详细内容。

19

2026.01.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号