JavaScript Получить клиентское компьютерное оборудование и системная информация
Через WMI для получения клиентского компьютерного оборудования и системы системы:
Код кода копирования следующим образом:
функция getSySinfo () {
var local = new ActivexObject ("wbemscripting.swbemlocator");
var service = local.connectserver (".");
// Информация процессора
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"););););
Для (var mem = [], i = 0;! Memory.atend (); memory.movenext ()) mem [i ++] = {cap: memory.item () .IteMM () .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.numberProcessors
Return {cputype: cputype, cpucount: cpucount, hostname: hostname, curuser: curuser, memcap: physicmencap, mem: mem}
}
Реализация кода в основном включает в себя эти части:
Сначала передайте новый ActiveXObject ("WBEMSCRIPTING.SWBEMLOCATOR");
Через local.connectserver (".");
Вы также можете получить доступ к другим компьютерам).
Через service.execquery («select * from win32_processor»), аналогичный оператор SQL (фактически, системная информация также хранится в файле, подобном базе данных, в расчетах) для получения необходимого набора записей.
Создайте перечисленный объект с помощью нового перечисления, и вы можете пройти информацию ниже.
Примечание. Предпосыой работы является изменение настройки безопасности браузера, «разрешение ActiveX, что не помечено как безопасное».
Операция сценария ».
Вот основная информация о процессоре, памяти и пользователях системы.
Для получения дополнительной информации. Класс общей информации указан ниже:
Win32_processor // процессор процессора
Win32_physicalmemory // Физическая память
Win32_keyboard // клавиатура
WIN32_PointingDevice // точечное входное устройство, такое как мышь
Win32_diskdrive // драйвер жесткого диска
Win32_cdromdrive // CD Drive
Win32_baseboard // Материнская плата
Win32_bios // Bios Chip
Win32_parallelport //
Win32_serialport // Серийный порт
Win32_SoundDevice // Мультимедийные настройки
Win32_usbcontroller // USB -контроллер
Win32_networkadapter // Сетевой адаптер
Win32_netWorkAdapterConfiguration // Настройки сетевого адаптера
Win32_printer // Принтер
Win32_printerConfiguration // Настройки принтера
Win32_printjob // Задача принтера
Win32_tcpipprinterport // printer port
Win32_potsmodem // modem
Win32_potsmodemtoserialport // modem port
Win32_desktopmonitor // дисплей
Win32_videoController // Детали видеокарты.
Win32_videosettings // Режим отображения, поддерживаемый графической картой.
Win32_timezone // часовой пояс
Win32_systemdriver // драйвер
Win32_diskpartition // дисковое разделение
Win32_logicaldisk // Логический диск
Win32_logicalmemoryConfiguration // Логическая конфигурация памяти
Win32_Pagefile // Информация о системной странице
Win32_pagefilestting // Настройки файла страницы
WIN32_BOOTCONFIGUTURE // Конфигурация запуска системы
Win32_operatingsystem // Информация о операционной системе
Win32_StartupCommand // Программа автоматической запуска системы
WIN32_Service // Служба установки системы
Win32_group // группа управления системой
Win32_groupuser // Номер учетной записи системы системной группы
Win32_useraccount // Учетная запись пользователя
Win32_Process // Системный процесс
WIN32_THREAD // Системный поток
Win32_share // share
Win32_networkclient // Установленный онлайн -клиент
Win32_networkprotocol // установленная сетевая протокол
Для получения полной информации и подробных списков класса WMI Win32, пожалуйста, см. MSDN:
http://msdn2.microsoft.com/en-s/library/aa394084 (Vs.85) .aspx
Пример:
Код кода копирования следующим образом:
Function button1_onclick () {// Информация процессора
var local = new ActivexObject ("wbemscripting.swbemlocator");
var service = local.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 ("<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.vailability +" </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 ("</table>");
}
Function button2_onclick () {// CD-ROM Информация
var local = new ActivexObject ("wbemscripting.swbemlocator");
var service = local.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 ("<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 ("</table>");
}
Function button3_onclick () {// Информация о клавиатуре
var local = new ActivexObject ("wbemscripting.swbemlocator");
var service = local.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 ("<Ter>");
document.write ("<td>" " + p.descript +" </td> ");
document.write ("<td>" " + p.name +" </td> ");
document.write ("<td>" " + p.status +" </td> ");
document.write ("</tr>);
}
document.write ("</table>");
}
Function button4_onclick () {// Информация о материнской плате
var local = new ActivexObject ("wbemscripting.swbemlocator");
var service = local.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 ("<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." </td> ");
document.write ("<td>" " + p.version +" </td> ");
document.write ("</tr>);
}
document.write ("</table>");
}
Кроме того, вы также можете получить соответствующую информацию следующими способами:
Код кода копирования следующим образом:
<html> <head> <Title> WMI Scripting 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! = "Не определено")
Macaddr = object.macaddress;
if (objobject.ipenabled && objobject.ipaddress (0)! = null && objobject.ipaddress (0)! = "Не определено")
Ipaddr = object.ipaddress (0);
if (objobject.dnshostname! = null && objobject.dnshostname! = "Не определено")
sdnsname = object.dshostname;
}
</Script>
<Meta Content = "MSHTML 6.00.2800.1106" Имя = Генератор> </head>
<тело>
<Объект идентификатор = локальная классификация = CLSID: 76A64158-CB41-11D1-8B02-00600806D9B6 ViewaStxt> </Object>
<Object Id = foo classid = clSID: 75718C9A-F029-11D1-A1AC-004FB6C223> </Object>
<script language = jscript>
var service = local.connectserver ();
var macaddr;
var iPaddr;
var domainddr;
var sdnsname;
Service.security_.ImpersonationLevel = 3;
Service.InstanceOfAsync (foo, 'win32_networkAdapterConfiguration');
</Script>
<Form id = "formfoo" name = "formbar" action = "index.do" method = "post"> <input value = "00-11-11-b4-52-ef" name = "txtmacaddr"> <Ввод Value = "210.42.38.50" name = "txtipaddr"> <input value = "zhupan" name = "txtdnsname"> </body> </html>
Код кода копирования следующим образом:
На самом деле, самое главное, чтобы использовать два ActiveX:
<Объект идентификатор = локальная классификация = CLSID: 76A64158-CB41-11D1-8B02-00600806D9B6 ViewaStxt> </Object>
<Object Id = foo classid = clSID: 75718C9A-F029-11D1-A1AC-004FB6C223> </Object>
Тем не менее, эти два ActiveX систематически строятся без необходимости загрузки или регистрации.
Следующая задача - взаимодействовать с ActiveX со сценариями
<html>
<голова>
<script language = "javascript" type = "text/javascript">
функция getCode () {
var local = new ActivexObject ("wbemscripting.swbemlocator");
var service = local.connectserver (".");
Var properties = service.execquery ("select * from win32_networkadapterConfiguration, где ipenabld = true");
var e = новый перечисление (свойства);
document.write ("<таблица границы = 1>");
for (;! e.atend (); e.movenext ()) {
var p = e.item ();
//If.ip.ipaddress (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 ("</table>");
}
</script>
</head>
<тело>
<button id = "test" value = "test" onclick = "getCode ()"> тест </button>
</Body>
</Html>
Class Win32_NetWorkAdapterConfiguration: CIM_SETTING
{{
логический Arpalwayssourceroute;
логический arpuseethersnap;
Строка Подпись;
String DatabasePath;
Boolean Deadgwdetectenabled;
String defaultipgateway [];
Uint8 defaulttos;
Uint8 defaulttl;
строка описание;
Логический dhcpenabled;
DateTime dhcpleaseExpires;
DateTime dhcpleaseObtaine;
String dhcpserver;
String dnsdomain;
string dnsdomiansuffixsearchordr [];
Boolean dnsenabledforwinsrsolution;
string dnshostname;
String dnsserversearchorder [];
Boolean Domaindnsregistratinabled;
Uint32 ForwardBufferMemory;
Boolean fulldnsregistrationnabled;
uint16 gatewaycostmetric [];
Uint8 igmplevel;
Uint32 индекс;
Uint32 interfaceindex;
String iPaddress [];
Uint32 ipconnectionmetric;
Логический ipenabled;
Логический ipfiltersecurityenabled;
Boolean ipportSecurityedabled;
String IpseCpermitipProtocols [];
string ipsecpermittcpports [];
String IpseCperTudPorts [];
String ipsubnet [];
Логический ipusezerobroadcast;
String ipxAddress;
Логический ipxenabled;
Uint32 ipxframetype [];
Uint32 ipxmediatype;
string ipxnetworknumber [];
String ipxvirtualnetnumber;
Uint32 keepaliveinterval;
Uint32 KeepAliveTime;
String macaddress;
Uint32 mtu;
Uint32 numforwardpackets;
Логический pmtubhdetectenabled;
Boolean Pmtudiscoveryed;
строка служба;
строка настройки;
Uint32 tcpipnetbiosoptions;
Uint32 tcpmaxconnectertransmissions;
Uint32 tcpmaxdataretransmisions;
Uint32 tcpnumconnections;
Логический TCPUSERFC111222GURGENTPOINTER;
Uint16 tcpwindowsize;
Boolean winsenablelmhostslookup;
String winshostlookupfile;
String Winsprimaryserver;
String winsscopeid;
String WinsSecondaryServer;
};