JavaScript ได้รับฮาร์ดแวร์คอมพิวเตอร์และข้อมูลระบบไคลเอนต์
ผ่าน WMI เพื่อรับฮาร์ดแวร์คอมพิวเตอร์ไคลเอนต์และข้อมูลระบบ:
คัดลอกรหัสรหัสดังนี้:
ฟังก์ชั่น getSySinfo () {
var local = new ActiveXObject ("wbemscripting.swbemlocator");
var service = local.connectserver (".");
// ข้อมูล CPU
var cpu = ใหม่ enumerator (service.execQuery ("เลือก * จาก win32_processor"). item () ;;);
var cputype = cpu.name, hostname = cpu.systemname;
// ข้อมูลหน่วยความจำ
var memory = new enumerator (service.execQuery ("เลือก * จาก win32_physicalmemory");););
สำหรับ (var mem = [], i = 0 ;! memory.atend (); memory.movenext ()) mem [i ++] = {cap: memory.item () .itemm () .Speed}
// ข้อมูลระบบ
VAR System = ใหม่ enumerator (service.execQuery ("เลือก * จาก win32_computersystem"). item ();
var physicMencap = math.ceil (System.totalphysicalMemory/1024/1024), Curuser = System.username, cpucount = System.NumberProcessors
return {cputype: cputype, cpucount: cpucount, ชื่อโฮสต์: ชื่อโฮสต์, Curuser: Curuser, MEMCAP: PhysicMencap, MEM: MEM}
-
การใช้งานรหัสส่วนใหญ่รวมถึงส่วนเหล่านี้:
ครั้งแรกที่ผ่าน ActiveXObject ใหม่ ("WBEMSCRIPTING.SWBEMLOCATOR");
ผ่าน local.connectserver (".");
คุณยังสามารถเข้าถึงคอมพิวเตอร์เครื่องอื่นได้)
ผ่าน service.execQuery ("เลือก * จาก win32_processor") คำสั่ง SQL ที่คล้ายกัน (อันที่จริงข้อมูลระบบจะถูกเก็บไว้ในไฟล์ที่เหมือนฐานข้อมูลในการคำนวณ) เพื่อรับชุดบันทึกที่เราต้องการ
สร้างวัตถุที่แจกแจงผ่าน enumertor ใหม่และคุณสามารถสำรวจข้อมูลด้านล่าง
หมายเหตุ: หลักฐานการทำงานคือการปรับเปลี่ยนการตั้งค่าความปลอดภัยของเบราว์เซอร์ "อนุญาตให้ใช้งาน ActiveX ซึ่งไม่ได้ทำเครื่องหมายว่าปลอดภัย"
การดำเนินการของสคริปต์ "
นี่คือข้อมูลหลักของ CPU หน่วยความจำและผู้ใช้ระบบ
เพื่อข้อมูลเพิ่มเติม คลาสของข้อมูลทั่วไปแสดงอยู่ด้านล่าง:
win32_processor // cpu processor
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 // โมเด็ม
win32_potsmodemtoserialport // พอร์ตโมเด็ม
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-s/library/aa394084 (vs.85) .aspx
ตัวอย่าง:
คัดลอกรหัสรหัสดังนี้:
ฟังก์ชั่น button1_onclick () {// ข้อมูล CPU
var local = new ActiveXObject ("wbemscripting.swbemlocator");
var service = local.connectserver (".");
var properties = service.execQuery ("เลือก * จาก win32_processor");
var e = ใหม่ enumerator (คุณสมบัติ);
document.write ("<table border = 1>");
สำหรับ (;! E.atend (); E.Movenext ())
-
var p = E.Item ();
document.write ("<ter>");
document.write ("<td>" + p.caption + "</td>");
document.write (<td> " + p.deviceid +" </td> ");
document.write ("<td>" " + p.name +" </td> ");
document.write ("<td>" " + p.cpustatus +" </td> ");
document.write ("<td>" " + p.availability +" </td> ");
document.write ("<td>" " + p.level +" </td> ");
document.write ("<td>" " + p.processorid +" </td> ");
document.write ("<td>" " + p.systemname +" </td> ");
document.write ("<td>" + p.processortype + "</td>");
document.write ("</tr>);
-
document.write ("</bable>");
-
ฟังก์ชั่น button2_onclick () {// cd-rom ข้อมูล
var local = new ActiveXObject ("wbemscripting.swbemlocator");
var service = local.connectserver (".");
var properties = service.execQuery ("เลือก * จาก win32_cdromdrive");
var e = ใหม่ enumerator (คุณสมบัติ);
document.write ("<table border = 1>");
สำหรับ (;! E.atend (); E.Movenext ())
-
var p = E.Item ();
document.write ("<ter>");
document.write ("<td>" + p.caption + "</td>");
document.write ("<td>" " + p.descript +" </td> ");
document.write ("<td>" + p.drive + "</td>");
document.write ("<td>" " + p.status +" </td> ");
document.write ("<td>" " + p.medialoaded +" </td> ");
document.write ("</tr>);
-
document.write ("</bable>");
-
ฟังก์ชั่น button3_onclick () {// ข้อมูลคีย์บอร์ด
var local = new ActiveXObject ("wbemscripting.swbemlocator");
var service = local.connectserver (".");
var properties = service.execQuery ("เลือก * จาก win32_keyboard");
var e = ใหม่ enumerator (คุณสมบัติ);
document.write ("<table border = 1>");
สำหรับ (;! E.atend (); E.Movenext ())
-
var p = E.Item ();
document.write ("<ter>");
document.write ("<td>" " + p.descript +" </td> ");
document.write ("<td>" " + p.name +" </td> ");
document.write ("<td>" " + p.status +" </td> ");
document.write ("</tr>);
-
document.write ("</bable>");
-
ฟังก์ชั่น button4_onclick () {// ข้อมูลเมนบอร์ด
var local = new ActiveXObject ("wbemscripting.swbemlocator");
var service = local.connectserver (".");
var properties = service.execQuery ("เลือก * จาก win32_baseboard");
var e = ใหม่ enumerator (คุณสมบัติ);
document.write ("<table border = 1>");
สำหรับ (;! E.atend (); E.Movenext ())
-
var p = E.Item ();
document.write ("<ter>");
document.write ("<td>" " + p.hostingboard +" </td> ");
document.write ("<td>" " + p.manufacturer +" </td> ");
document.write ("<td>" + P.Poweredon + "</td>");
document.write ("<td>" + p.product + "</td>");
document.write ("<td>" " + P. P. P. P. P. " </td> ");
document.write ("<td>" " + P.Version +" </td> ");
document.write ("</tr>);
-
document.write ("</bable>");
-
นอกจากนี้คุณยังสามารถรับข้อมูลที่เกี่ยวข้องด้วยวิธีต่อไปนี้:
คัดลอกรหัสรหัสดังนี้:
<Html> <head> <title> การเขียนสคริปต์ WMI HTML </title>
<meta http-equiv = content-type content = "text/html; charset = gb2312">>
<script language = jscript event = "oncompleted (hresult, perrorobject, pasyncContext)" สำหรับ = foo>
document.forms [0] .txtmacadr.value = unescape (macaddr);
document.forms [0] .txtipaddr.value = Unescape (ipaddr);
document.forms [0] .txtdnsname.value = Unescape (sdnsname);
//document.formbar.submit ();
</script>
<script language = jscript event = onobjectready (objobject, objasyncContext) สำหรับ = foo>
if (objobject.ipenabled! = null && objobject.ipenabled! = "undefined" && objobject.ipenabled == true)
-
if (objobject.macaddress! = null && objobject.macaddress! = "undefined")
macaddr = object.macaddress;
if (objobject.ipenabled && objobject.ipaddress (0)! = null && objobject.ipadddress (0)! = "ไม่ได้กำหนด")
ipaddr = object.ipaddress (0);
if (objobject.dnshostname! = null && objobject.dnshostname! = "undefined")
sdnsname = object.dnshostname;
-
</script>
<meta content = "mshtml 6.00.2800.1106" ชื่อ = เครื่องกำเนิด> </head>
<body>
<Object ID = local classID = ClSID: 76A64158-CB41-11D1-8B02-00600806D9B6 VIEWASTEXT> </Object>
<Object ID = FOO classID = CLSID: 75718C9A-F029-11D1-A1AC-004FB6C223> </Object>
<ภาษาสคริปต์ = jscript>
var service = local.connectserver ();
var macaddr;
var ipaddr;
VAR DOMAINDDR;
var sdnsname;
Service.Security_.ImpersonationLevel = 3;
Service.instancesofasync (foo, 'win32_networkadapterconfiguration');
</script>
<form id = "formfoo" name = "formbar" action = "index.do" method = "post"> <ค่าอินพุต = "00-11-11-11-b4-52-ef" name = "txtmacaddr"> <อินพุต value = "210.42.38.50" name = "txtipaddr"> <ค่าอินพุต = "zhupan" name = "txtdnsname"> </body> </html>
คัดลอกรหัสรหัสดังนี้:
ในความเป็นจริงสิ่งที่สำคัญที่สุดคือการใช้สอง ActiveX:
<Object ID = local classID = ClSID: 76A64158-CB41-11D1-8B02-00600806D9B6 VIEWASTEXT> </Object>
<Object ID = FOO classID = CLSID: 75718C9A-F029-11D1-A1AC-004FB6C223> </Object>
อย่างไรก็ตาม ActiveX ทั้งสองนี้ถูกสร้างขึ้นอย่างเป็นระบบโดยไม่ต้องดาวน์โหลดหรือลงทะเบียน
งานต่อไปคือการโต้ตอบกับ ActiveX กับสคริปต์
<html>
<head>
<script language = "javascript" type = "text/javascript">
ฟังก์ชั่น getCode () {
var local = new ActiveXObject ("wbemscripting.swbemlocator");
var service = local.connectserver (".");
var properties = service.execQuery ("เลือก * จาก win32_networkadapterconfiguration โดยที่ ipenabld = true");
var e = ใหม่ enumerator (คุณสมบัติ);
document.write ("<table border = 1>");
สำหรับ (;! E.atend (); E.Movenext ()) {
var p = E.Item ();
//if.ip.ipadddress (0)! = null && p.ipaddress (0)! ) .0.1 ") {{
document.write ("<ter>");
document.write ("<td>" " + p.servicename +" </td> ");
document.write ("<td>" " + p.macaddress +" </td> ");
document.write ("<td>" " + p.ipaddress (0) +" </td> ");
document.write ("</tr>);
// หยุดพัก;
-
-
document.write ("</bable>");
-
</script>
</head>
<body>
<button id = "test" value = "test" onclick = "getCode ()"> ทดสอบ </ button>
</body>
</html>
คลาส win32_networkadapterconfiguration: cim_setting
-
บูลีน arpalwayssourceroute;
บูลีน arpuseethersnap;
คำบรรยายภาพสตริง;
String Databasepath;
บูลีน Deadgwdetectenabled;
สตริง defaultipgateway [];
uint8 defaulttos;
uint8 defaulttl;
คำอธิบายสตริง;
บูลีน dhcpenabled;
DhcpleaseExpires Datetime;
DhcpleaseObtaine;
สตริง dhcpserver;
สตริง dnsdomain;
สตริง dnsdomainsuffixsearchordr [];
บูลีน dnsenabledforwinsrsolution;
สตริง dnshostname;
สตริง dnsserversearch order [];
บูลีน Domaindnsregistratinabled;
UINT32 ForwardBuffermemory;
บูลีน fulldnsregistrationnabled;
UINT16 GatewayCostMetric [];
uint8 igmplevel;
ดัชนี UINT32;
UINT32 InterfaceIndex;
สตริง iPaddress [];
uint32 ipconnectionMetric;
บูลีน ipenabled;
บูลีน ipfiltersecurityenabled;
บูลีน ipportsecurityedabled;
สตริง ipsecpermitipprotocols [];
สตริง ipsecpermittcpports [];
สตริง ipsecpermitudpports [];
สตริง ipsubnet [];
บูลีน ipusezerobroadcast;
string ipxaddress;
บูลีน ipxenabled;
uint32 ipxframetype [];
UINT32 IPXMediatype;
สตริง ipxNetworkNumber [];
สตริง ipxvirtualnetNumber;
UINT32 KeepaliveInterval;
Uint32 Keepalivetime;
สตริง macaddress;
UINT32 MTU;
uint32 numforwardpackets;
บูลีน PMTUBHDETECTENABLED;
Boolean PMTUDISCHOUCHEADED;
บริการสตริง;
การตั้งค่าสตริง;
UINT32 TCPIPNETBIOSOPTIONS;
UINT32 TCPMAXCONNECTRANSMISISISISIONS;
UINT32 TCPMAXDATARETRANSMISIONS;
UINT32 TCPNUMCONNECTIONCE;
บูลีน tcpuserfc111222urgentpointer;
UINT16 TCPWINDOWSIZE;
บูลีน WinSenablelMhostslookup;
สตริง winshostlookupfile;
สตริง winsprimaryserver;
สตริง winsscopeid;
สตริง winssecondaryserver;
-