>웹 프론트엔드 >JS 튜토리얼 >클라이언트 컴퓨터 하드웨어 및 시스템 정보를 얻는 JavaScript 방법_javascript 기술

클라이언트 컴퓨터 하드웨어 및 시스템 정보를 얻는 JavaScript 방법_javascript 기술

WBOY
WBOY원래의
2016-05-16 17:05:401234검색

클라이언트 컴퓨터 하드웨어 및 시스템 정보를 가져오는 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();
varphysicMenCap=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}
}

주로 코드 구현 다음 부분이 포함됩니다.

먼저 새로운 ActiveXObject("WbemScripting.SWbemLocator")를 통해 WbemScripting 개체에 액세스합니다.
locator.ConnectServer(".")를 통해 로컬 컴퓨터에 연결합니다(.는 로컬 컴퓨터를 나타냅니다. 물론
은 다른 컴퓨터에도 액세스할 수 있습니다).
SQL과 유사한 문인 service.ExecQuery("SELECT * FROM Win32_Processor")를 통해 필요한 개체의 레코드 세트를 가져옵니다(실제로 시스템 정보도 계산에서 데이터베이스와 같은 파일에 저장됩니다). .
새 Enumerator를 사용하여 열거 가능한 개체를 만든 다음 순회하여 정보를 얻을 수 있습니다.

참고: 실행을 위한 전제 조건은 브라우저 보안 설정을 "실행하기에 안전한 것으로 표시되지 않은 ActiveX
스크립트의 실행을 허용"으로 수정하는 것입니다.
여기서 주요 정보는 CPU, 메모리 및 시스템 사용자입니다. WMI API 또는 JSEDIT를 사용하여
더 많은 정보를 얻을 수 있습니다. 공통 정보에 대한 클래스는 다음과 같습니다.

Win32_Processor // CPU 프로세서

Win32_PhysicalMemory // 물리적 메모리

Win32_Keyboard // 키보드

Win32_PointingDevice / / 포인트 마우스 등의 입력 장치

Win32_DiskDrive // ​​​​하드 드라이브

Win32_CDROMDrive // ​​​​CD 드라이브

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
예:
코드 복사 코드는 다음과 같습니다.

functionbutton1_onclick() {//cpu 信息
var locator = new ActiveXObject ("WbemScripting.SWbemLocator");
var service = locator.ConnectServer(".");
var Properties = service.ExecQuery("SELECT * FROM Win32_Processor");
var e = 새 열거자(속성);
document.write("<테이블 테두리=1>");
for (;!e.atEnd();e.moveNext ())
{
var p = e.item ();
document.write("");
document.write("" p.Caption "");
document.write("" p.DeviceID "");
document.write("" p.Name "");
document.write("" p.CpuStatus "");
document.write("" p.가용성 "");
document.write("" p.Level "");
document.write("" p.ProcessorID "");
document.write("" p.SystemName "");
document.write("" p.ProcessorType "");
document.write("");
}
document.write("");
}

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 = 새 열거자(속성);
document.write("<테이블 테두리=1>");
for (;!e.atEnd();e.moveNext ())
{
var p = e.item ();
document.write("");
document.write("" p.Caption "");
document.write("" p.Description "");
document.write("" p.Drive "");
document.write("" p.Status "");
document.write("" p.MediaLoaded "");
document.write("");
}
document.write("");
}

function Button3_onclick() {//键盘信息
var locator = new ActiveXObject ("WbemScripting.SWbemLocator");
var service = locator.ConnectServer(".");
var Properties = service.ExecQuery("SELECT * FROM Win32_Keyboard");
var e = 새 열거자(속성);
document.write("<테이블 테두리=1>");
for (;!e.atEnd();e.moveNext ())
{
var p = e.item ();
document.write("");
document.write("" p.Description "");
document.write("" p.Name "");
document.write("" p.Status "");
document.write("");
}
document.write("");
}

function Button4_onclick() {//主板信息
var locator = new ActiveXObject ("WbemScripting.SWbemLocator");
var service = locator.ConnectServer(".");
var Properties = service.ExecQuery("SELECT * FROM Win32_BaseBoard");
var e = 새 열거자(속성);
document.write("<테이블 테두리=1>");
for (;!e.atEnd();e.moveNext ())
{
var p = e.item ();
document.write("");
document.write("" p.HostingBoard "");
document.write("" p.제조업체 "");
document.write("" p.PoweredOn "");
document.write("" p.Product "");
document.write("" p.SerialNumber "");
document.write("" p.Version "");
document.write("");
}
document.write("");
}


另외, 일반적으로 过以下方式也可以获得系统的关信息:
复代码 代码如下:

WMI 스크립팅 HTML













复代码 代码如下:

사실 가장 중요한 것은 두 개의 ActiveX를 사용하는 것입니다:
>
그러나 이 두 개의 ActiveX는 시스템과 함께 제공되므로 다운로드하거나 등록할 필요가 없습니다.
다음 단계는 스크립트를 사용하여 ActiveX와 상호작용하는 것입니다

;
function getCode(){
var locator = new ActiveXObject("WbemScripting.SWbemLocator");
var service = locator.ConnectServer("."); " SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=TRUE");
var e = new Enumerator(properties);
document.write("")
for (; !e .atEnd(); e.moveNext()) {
var p = e.item()
//if(p.IPAddress(0)!=null && p.IPAddress(0)!=" 정의되지 않음 " && p.IPAddress(0)!="0.0.0.0" && p.IPAddress(0)!="127.0.0.1"){
document.write("");
document .write("")
document.write(""); document .write("")
document.write("")
//break; > //}
}
document.write("
" p.ServiceName "" p.MACAddress "" p.IPAddress(0) "
")
}

;


부울 arpuseetheroute; 🎜 >uint8 DefaultTOS;
string 설명;
datetime DHCPLeaseExpires;
DNSDomainSuffixSearchOrder[]; WINS해결책 ;
string DNSServerSearchOrder[];
uint32 ForwardBufferMemory[];
uint32 Index; 🎜>string IPAddress[];
uint32 IPConnectionMetric;
string IPSecPermitTCPPorts[];
string IPSubnet[]; ;
string IPXAddress;
uint32 IPXMediaType;
string IPXVirtualNetNumber
uint32 KeepAliveTime; 🎜>uint32 NumForwardPackets;
boolean PMTUDiscoveryEnabled;
string ServiceName
uint32 TcpMaxDataRetransmissions; umConnections;
부울 TcpUseRFC1122UrgentPointer;
uint16 TcpWindowSize
boolean WINSEnableLMHostsLookup;
string WINSPrimaryServer;
string WINSScopeID;


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.