Home Web Front-end JS Tutorial JavaScript method to obtain client computer hardware and system information_javascript skills

JavaScript method to obtain client computer hardware and system information_javascript skills

May 16, 2016 pm 05:05 PM
client hardware information

JavaScript to obtain client computer hardware and system information
Acquire client computer hardware and system information through WMI:

Copy code The code is as follows:

function getSysInfo(){
var locator = new ActiveXObject ("WbemScripting.SWbemLocator");
var service = locator.ConnectServer("." );
//CPU information
var cpu = new Enumerator (service.ExecQuery("SELECT * FROM Win32_Processor")).item();
var cpuType=cpu.Name,hostName=cpu.SystemName ;
//Memory information
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}
//System information
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}
}

The code implementation mainly includes These parts:

First access the WbemScripting object through new ActiveXObject ("WbemScripting.SWbemLocator");.
Connect to our local computer through locator.ConnectServer("."); (. represents the local computer, of course
can also access other computers).
Get the record set of the object we need through service.ExecQuery("SELECT * FROM Win32_Processor"), a SQL-like statement (in fact, the system information is also stored in a database-like file in the calculation).
Use new Enumerator to create an enumerable object, and then you can traverse to get the information.

Note: The prerequisite for running is to modify the browser security settings to "Allow the running of ActiveX
scripts that are not marked as safe for execution".
The main information here is CPU, memory and system user. You can use WMI API or JSEDIT to get
more information. Classes for common information are listed below:

Win32_Processor // CPU processor

Win32_PhysicalMemory // Physical memory

Win32_Keyboard // Keyboard

Win32_PointingDevice / / Point input device, such as mouse

Win32_DiskDrive // ​​Hard drive

Win32_CDROMDrive // ​​CD drive

Win32_BaseBoard // Motherboard

Win32_BIOS // BIOS chip

Win32_ParallelPort // Parallel port

Win32_SerialPort // Serial port

Win32_SoundDevice // Multimedia settings

Win32_USBController // USB controller

Win32_NetworkAdapter // Network Adapter

Win32_NetworkAdapterConfiguration // Network Adapter Settings

Win32_Printer // Printer

Win32_PrinterConfiguration // Printer Settings

Win32_PrintJob // Printer Task

Win32_TCPIPPrinterPort // Printer port

Win32_POTSModem // MODEM

Win32_POTSModemToSerialPort // MODEM port

Win32_DesktopMonitor // Monitor

Win32_VideoController // Display card detail.

Win32_VideoSettings // Display modes supported by the graphics card.

Win32_TimeZone // Time zone

Win32_SystemDriver // Driver

Win32_DiskPartition // Disk partition

Win32_LogicalDisk // Logical disk

Win32_LogicalMemoryConfiguration // Logical memory configuration

Win32_PageFile // System page file information

Win32_PageFileSetting // Page file setting

Win32_BootConfiguration // System startup configuration

Win32_OperatingSystem / / Operating system information

Win32_StartupCommand // System automatic startup program

Win32_Service // System installed services

Win32_Group // System management group

Win32_GroupUser / / System group account

Win32_UserAccount // User account

Win32_Process // System process

Win32_Thread // System thread

Win32_Share // Share

Win32_NetworkClient // Installed network client

Win32_NetworkProtocol // Installed network protocol

WMI For complete information and detailed list of Win32 classes, please refer to MSDN:
http: //msdn2.microsoft.com/en-us/library/aa394084(VS.85).aspx
Example:
Copy code The code is as follows:

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













复制代码 代码如下:

In fact, the most important thing is to use two ActiveX:

< ;OBJECT id=foo classid=CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223>
However, these two ActiveXs come with the system, so there is no need to download or register them.
The next step is to use script to interact with 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; DNSDomainSuffixSearchOrder[];
boolean DNSEnabledForWINSResolution;
string DNSHostName;
string DNSServerSearchOrder[];
boolean DomainDNSRegistrationEnabled;
uint32 ForwardBufferMemory; GatewayCostMetric[];
uint8 IGMPLevel;
uint32 Index;
uint32 InterfaceIndex;
string IPAddress[];
uint32 IPConnectionMetric;
string IPSecPermitIPProtocols[];
string IPSecPermitTCPPorts[];
string IPSecPermitUDPPorts[];
string IPSubnet[];
boolean IPUseZeroBroadcast;
string IPXAddress;
uint32 IPXFrameType[];
uint32 IPXMediaType;
string IPXNetworkNumber[];
string IPXVirtualNetNumber;
uint32 KeepAliveInterval;
uint32 KeepAliveTime; MTU;
uint32 NumForwardPackets;
boolean PMTUBHDetectEnabled;
boolean PMTUDiscoveryEnabled;
string ServiceName;
string SettingID;
uint32 TcpipNetbiosOptions; 32 TcpMaxDataRetransmissions;
uint32 TcpNumConnections;
boolean TcpUseRFC1122UrgentPointer;
uint16 TcpWindowSize;
boolean WINSEnableLMHostsLookup;
string WINSHostupFile;
string WINSPrimaryServer;
string WINSScopeID; 🎜>string WINSSecondaryServer;
};


Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

VMware Horizon Client cannot be opened [Fix] VMware Horizon Client cannot be opened [Fix] Feb 19, 2024 pm 11:21 PM

VMware Horizon Client helps you access virtual desktops conveniently. However, sometimes the virtual desktop infrastructure may experience startup issues. This article discusses the solutions you can take when the VMware Horizon client fails to start successfully. Why won't my VMware Horizon client open? When configuring VDI, if the VMWareHorizon client is not open, an error may occur. Please confirm that your IT administrator has provided the correct URL and credentials. If everything is fine, follow the solutions mentioned in this guide to resolve the issue. Fix VMWareHorizon Client Not Opening If VMW is not opening on your Windows computer

VMware Horizon client freezes or stalls while connecting [Fix] VMware Horizon client freezes or stalls while connecting [Fix] Mar 03, 2024 am 09:37 AM

When connecting to a VDI using the VMWareHorizon client, we may encounter situations where the application freezes during authentication or the connection blocks. This article will explore this issue and provide ways to resolve this situation. When the VMWareHorizon client experiences freezing or connection issues, there are a few things you can do to resolve the issue. Fix VMWareHorizon client freezes or gets stuck while connecting If VMWareHorizon client freezes or fails to connect on Windows 11/10, do the below mentioned solutions: Check network connection Restart Horizon client Check Horizon server status Clear client cache Fix Ho

PHP MQTT Client Development Guide PHP MQTT Client Development Guide Mar 27, 2024 am 09:21 AM

MQTT (MessageQueuingTelemetryTransport) is a lightweight message transmission protocol commonly used for communication between IoT devices. PHP is a commonly used server-side programming language that can be used to develop MQTT clients. This article will introduce how to use PHP to develop an MQTT client and include the following content: Basic concepts of the MQTT protocol Selection and usage examples of the PHPMQTT client library: Using the PHPMQTT client to publish and

How to solve the problem that the Baidu Netdisk webpage cannot start the client? How to solve the problem that the Baidu Netdisk webpage cannot start the client? Mar 13, 2024 pm 05:00 PM

When many friends download files, they will first browse on the web page and then transfer to the client to download. But sometimes users will encounter the problem that the Baidu Netdisk webpage cannot start the client. In response to this problem, the editor has prepared a solution for you to solve the problem that the Baidu Netdisk webpage cannot start the client. Friends in need can refer to it. Solution: 1. Maybe Baidu Netdisk is not the latest version. Manually open the Baidu Netdisk client, click the settings button in the upper right corner, and then click version upgrade. If there is no update, the following prompt will appear. If there is an update, please follow the prompts to update. 2. The detection service program of Baidu Cloud Disk may be disabled. It is possible that we manually or use security software to automatically disable the detection service program of Baidu Cloud Disk. Please check it out

What is the mobile client What is the mobile client Aug 16, 2023 pm 01:40 PM

A mobile client refers to an application that runs on a smartphone and provides users with various functions and services in the form of a native client or a web client. Mobile clients can be divided into two forms: original clients and web clients. Native clients refer to applications written for specific operating systems using specific programming languages ​​and development tools. The advantage of web clients is that they have good cross-platform compatibility. , can run on different devices without operating system restrictions, but compared to the native client, the performance and user experience of the web client may be reduced.

How to write an FTP client in PHP How to write an FTP client in PHP Aug 01, 2023 pm 07:23 PM

How to write an FTP client in PHP 1. Introduction FTP (File Transfer Protocol) is a protocol used for file transfer on the network. In web development, we often need to upload or download files through FTP. As a popular server-side language, PHP provides powerful FTP functions, allowing us to easily write FTP clients. This article will introduce how to write a simple FTP client using PHP and provide code examples. 2. Connect to the FTP server in PHP, we can use f

How to remove the shield logo above the Win11 client? How to remove the shield logo above the Win11 client? Jan 05, 2024 am 11:21 AM

Some Win11 users have noticed that the shield logo appears next to some software icons on their personal computers. This protects computer systems and even the important information and data stored in them from infringement. If you don't like it, you can solve it by the following method. How to remove the shield logo on the win11 client 1. Right-click the taskbar on the computer and select "Task Manager" 2. Then click "Start" above 3. Find "Windows Defender" here and right-click and select "Disable", then Just restart the computer.

win11 client and server do not support commonly used ssl win11 client and server do not support commonly used ssl Dec 29, 2023 pm 02:09 PM

If neither the client nor the server implements SSL encryption technology, it is very easy for information to be stolen by intermediary attackers during the transmission process, thus causing serious risks to data security. For this reason, corresponding measures should be taken urgently to effectively ensure the security of sensitive data. You can refer to the following methods to operate. The win11 client and server do not support the commonly used SSL1. When upgrading and transforming the server system, you can give priority to upgrading and optimizing the server system, or supplementing the required necessary components to ensure that it can smoothly support the latest SSL protocol. 2. Deploy SSL certificates. You can purchase and deploy SSL certificates issued by prestigious certification centers, and install them in the server to achieve this function. 3. Enable SSL protocol

See all articles