zoukankan      html  css  js  c++  java
  • JavaScript 获取客户端计算机硬件及系统信息

    浏览器信息

    [javascript] view plain copy
    1. //浏览器信息  
    2. function BrowserInfo() {  
    3.     var userLanguage = navigator.userLanguage;     // 用户在自己的操作系统上设置的语言(火狐没有)    
    4.     var userAgent = navigator.userAgent;           //包含以下属性中所有或一部分的字符串:appCodeName,appName,appVersion,language,platform    
    5.     var systemLanguage = navigator.systemLanguage; // 用户操作系统支持的默认语言(火狐没有)  
    6.     var info = "";  
    7.     info += "浏览器属性信息: " + userAgent + "<br />";  
    8.     info += "用户设置的操作系统语言: " + userLanguage + "<br />";  
    9.     info += "操作系统支持的默认语言: " + systemLanguage + "<br />";  
    10.     return info;  
    11. }  

    2、客户端计算机硬件及系统信息

    [javascript] view plain copy
    1. //CPU信息  
    2. function CpuInfo() {  
    3.     var locator = new ActiveXObject("WbemScripting.SWbemLocator");  
    4.     var service = locator.ConnectServer(".");   
    5.     var properties = service.ExecQuery("SELECT * FROM Win32_Processor");  
    6.     var e = new Enumerator(properties);  
    7.     var info = "<table border=1>";  
    8.     info += "<tr  bgcolor='#CDEDED' style='font-weight: bold;' ><td width='450' >CPU 信息</td></tr>";  
    9.     for (; !e.atEnd(); e.moveNext()) {  
    10.         var p = e.item();  
    11.         info += "<tr style='color: red'><td >CPU序列号:" + p.ProcessorID + "</td></tr>";  
    12.         info += "<tr><td >" + p.Caption + "</td></tr>";  
    13.         info += "<tr><td >CPU编号:" + p.DeviceID + "</td></tr>";  
    14.         info += "<tr><td >CPU型号:" + p.Name + "</td></tr>";  
    15.         info += "<tr><td >CPU状态:" + p.CpuStatus + "</td></tr>";  
    16.         info += "<tr><td >CPU可用性:" + p.Availability + "</td></tr>";  
    17.         info += "<tr><td >CUP Level:" + p.Level + "</td></tr>";  
    18.         info += "<tr><td >主机名称:" + p.SystemName + "</td></tr>";  
    19.         info += "<tr><td >Processor Type:" + p.ProcessorType + "</td></tr>";  
    20.     }  
    21.     info += "</table>";  
    22.     return info;  
    23. }  
    24.   
    25. //主板信息  
    26. function MainBoard() {  
    27.     var locator = new ActiveXObject("WbemScripting.SWbemLocator");  
    28.     var service = locator.ConnectServer(".");      
    29.     var properties = service.ExecQuery("SELECT * FROM Win32_BaseBoard");  
    30.     var e = new Enumerator(properties);  
    31.     var info = "<table border=1>";  
    32.     info += "<tr bgcolor='#CDEDED' style='font-weight: bold;'><td width='450'>主板信息 </td></tr>";  
    33.     for (; !e.atEnd(); e.moveNext()) {  
    34.         var p = e.item();  
    35.         info += "<tr style='color: red'><td >主板ID:" + p.SerialNumber + "</td></tr>";  
    36.         info += "<tr><td >" + p.HostingBoard + "</td></tr>";  
    37.         info += "<tr><td >制造商:" + p.Manufacturer + "</td></tr>";  
    38.         info += "<tr><td >是否开启:" + p.PoweredOn + "</td></tr>";  
    39.         info += "<tr><td >型号:" + p.Product + "</td></tr>";  
    40.         info += "<tr><td >版本:" + p.Version + "</td></tr>";  
    41.     }  
    42.     info += "</table>";  
    43.     return info;  
    44. }  
    45.   
    46. //Ram信息    
    47. function RamInfo(){  
    48.     var locator = new ActiveXObject("WbemScripting.SWbemLocator");  
    49.     var service = locator.ConnectServer(".");      
    50.     var system=new Enumerator (service.ExecQuery("SELECT * FROM Win32_ComputerSystem")).item();     
    51.     var physicMenCap=Math.ceil(system.TotalPhysicalMemory/1024/1024);    
    52.     //内存信息     
    53.     var memory = new Enumerator (service.ExecQuery("SELECT * FROM Win32_PhysicalMemory"));  
    54.     for (var mem = [], i = 0; !memory.atEnd(); memory.moveNext()) {  
    55.         mem[i++] = { cap: memory.item().Capacity / 1024 / 1024, speed: memory.item().Speed };  
    56.     }    
    57. }    
    58.   
    59. //网络连接信息    
    60. function IpInfo(){    
    61.     var locator = new ActiveXObject("WbemScripting.SWbemLocator");  
    62.     var service = locator.ConnectServer(".");  
    63.     var properties = service.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration Where IPEnabled=TRUE");    
    64.     var e = new Enumerator (properties);    
    65.     var info="<table border=1>";     
    66.     info+="<tr bgcolor='#CDEDED' style='font-weight: bold;' ><td width='450'>网络连接信息:</td></tr>";    
    67.     var i=1;    
    68.     for (;!e.atEnd();e.moveNext ()){    
    69.         var p = e.item ();    
    70.         info+="<tr style='color: red'><td >MAC地址"+i+":" + p.MACAddress + "</td></tr>";    
    71.         info+="<tr style='color: red'><td >IP地址"+i+":" + p.IPAddress(0) + "</td></tr>";    
    72.         i++;    
    73.     }    
    74.     info+="</table>";     
    75.     return info;    
    76. }  
    77.   
    78. // 操作系统信息  
    79. function OsInfo() {  
    80.     var locator = new ActiveXObject("WbemScripting.SWbemLocator");  
    81.     var service = locator.ConnectServer(".");  
    82.     var properties = service.ExecQuery("SELECT * FROM Win32_OperatingSystem");  
    83.     var e = new Enumerator(properties);  
    84.     var info = "<table border=1>";  
    85.     info += "<tr bgcolor='#CDEDED' style='font-weight: bold;' ><td width='450'>OS信息:</td></tr>";  
    86.     var i = 1;  
    87.     for (; !e.atEnd(); e.moveNext()) {  
    88.         var p = e.item();  
    89.         info += "<tr style='color: red'><td > " + p.BootDevice + "</td></tr>";  
    90.         info += "<tr style='color: red'><td>" + p.BuildNumber + "</td></tr>";  
    91.         info += "<tr style='color: red'><td>" + p.BuildType + "</td></tr>";  
    92.         info += "<tr style='color: red'><td>" + p.Caption + "</td></tr>";  
    93.         info += "<tr style='color: red'><td>" + p.CodeSet + "</td></tr>";  
    94.         info += "<tr style='color: red'><td>" + p.CountryCode + "</td></tr>";  
    95.         info += "<tr style='color: red'><td>" + p.CreationClassName + "</td></tr>";  
    96.         info += "<tr style='color: red'><td>" + p.CSCreationClassName + "</td></tr>";  
    97.         info += "<tr style='color: red'><td>" + p.CSDVersion + "</td></tr>";  
    98.         info += "<tr style='color: red'><td>" + p.CSName + "</td></tr>";  
    99.         info += "<tr style='color: red'><td>" + p.CurrentTimeZone + "</td></tr>";  
    100.         info += "<tr style='color: red'><td>" + p.DataExecutionPrevention_Available + "</td></tr>";  
    101.         info += "<tr style='color: red'><td>" + p.DataExecutionPrevention_32BitApplications + "</td></tr>";  
    102.         info += "<tr style='color: red'><td>" + p.DataExecutionPrevention_Drivers + "</td></tr>";  
    103.         info += "<tr style='color: red'><td>" + p.DataExecutionPrevention_SupportPolicy + "</td></tr>";  
    104.         info += "<tr style='color: red'><td>" + p.Debug + "</td></tr>";  
    105.         info += "<tr style='color: red'><td>" + p.Description + "</td></tr>";  
    106.         info += "<tr style='color: red'><td>" + p.Distributed + "</td></tr>";  
    107.         info += "<tr style='color: red'><td>" + p.EncryptionLevel + "</td></tr>";  
    108.         info += "<tr style='color: red'><td>" + p.ForegroundApplicationBoost + "</td></tr>";  
    109.         info += "<tr style='color: red'><td>" + p.FreePhysicalMemory + "</td></tr>";  
    110.         info += "<tr style='color: red'><td>" + p.FreeSpaceInPagingFiles + "</td></tr>";  
    111.         info += "<tr style='color: red'><td>" + p.FreeVirtualMemory + "</td></tr>";  
    112.         info += "<tr style='color: red'><td>" + p.InstallDate + "</td></tr>";  
    113.         info += "<tr style='color: red'><td>" + p.LargeSystemCache + "</td></tr>";  
    114.         info += "<tr style='color: red'><td>" + p.LastBootUpTime + "</td></tr>";  
    115.         info += "<tr style='color: red'><td>" + p.LocalDateTime + "</td></tr>";  
    116.         info += "<tr style='color: red'><td>" + p.Locale + "</td></tr>";  
    117.         info += "<tr style='color: red'><td>" + p.Manufacturer + "</td></tr>";  
    118.         info += "<tr style='color: red'><td>" + p.MaxNumberOfProcesses + "</td></tr>";  
    119.         info += "<tr style='color: red'><td>" + p.MaxProcessMemorySize + "</td></tr>";  
    120.         info += "<tr style='color: red'><td>" + p.Name + "</td></tr>";  
    121.         info += "<tr style='color: red'><td>" + p.NumberOfLicensedUsers + "</td></tr>";  
    122.         info += "<tr style='color: red'><td>" + p.NumberOfProcesses + "</td></tr>";  
    123.         info += "<tr style='color: red'><td>" + p.NumberOfUsers + "</td></tr>";  
    124.         info += "<tr style='color: red'><td>" + p.OperatingSystemSKU + "</td></tr>";  
    125.         info += "<tr style='color: red'><td>" + p.Organization + "</td></tr>";  
    126.         info += "<tr style='color: red'><td>" + p.OSArchitecture + "</td></tr>";  
    127.         info += "<tr style='color: red'><td>" + p.OSLanguage + "</td></tr>";  
    128.         info += "<tr style='color: red'><td>" + p.OSProductSuite + "</td></tr>";  
    129.         info += "<tr style='color: red'><td>" + p.OSType + "</td></tr>";  
    130.         info += "<tr style='color: red'><td>" + p.OtherTypeDescription + "</td></tr>";  
    131.         info += "<tr style='color: red'><td>" + p.PAEEnabled + "</td></tr>";  
    132.         info += "<tr style='color: red'><td>" + p.PlusProductID + "</td></tr>";  
    133.         info += "<tr style='color: red'><td>" + p.PlusVersionNumber + "</td></tr>";  
    134.         info += "<tr style='color: red'><td>" + p.PortableOperatingSystem + "</td></tr>";  
    135.         info += "<tr style='color: red'><td>" + p.Primary + "</td></tr>";  
    136.         info += "<tr style='color: red'><td>" + p.ProductType + "</td></tr>";  
    137.         info += "<tr style='color: red'><td>" + p.RegisteredUser + "</td></tr>";  
    138.         info += "<tr style='color: red'><td>" + p.SerialNumber + "</td></tr>";  
    139.         info += "<tr style='color: red'><td>" + p.ServicePackMajorVersion + "</td></tr>";  
    140.         info += "<tr style='color: red'><td>" + p.ServicePackMinorVersion + "</td></tr>";  
    141.         info += "<tr style='color: red'><td>" + p.SizeStoredInPagingFiles + "</td></tr>";  
    142.         info += "<tr style='color: red'><td>" + p.Status + "</td></tr>";  
    143.         info += "<tr style='color: red'><td>" + p.SuiteMask + "</td></tr>";  
    144.         info += "<tr style='color: red'><td>" + p.SystemDevice + "</td></tr>";  
    145.         info += "<tr style='color: red'><td>" + p.SystemDirectory + "</td></tr>";  
    146.         info += "<tr style='color: red'><td>" + p.SystemDrive + "</td></tr>";  
    147.         info += "<tr style='color: red'><td>" + p.TotalSwapSpaceSize + "</td></tr>";  
    148.         info += "<tr style='color: red'><td>" + p.TotalVirtualMemorySize + "</td></tr>";  
    149.         info += "<tr style='color: red'><td>" + p.TotalVisibleMemorySize + "</td></tr>";  
    150.         info += "<tr style='color: red'><td>" + p.Version + "</td></tr>";    
    151.         i++;  
    152.     }  
    153.     info += "</table>";  
    154.     return info;  
    155. }  
    156.   
    157. //用户帐号信息  
    158. function UidInfo() {  
    159.     var locator = new ActiveXObject("WbemScripting.SWbemLocator");  
    160.     var service = locator.ConnectServer(".");  
    161.     var properties = service.ExecQuery("SELECT * FROM Win32_UserAccount");  
    162.     var e = new Enumerator(properties);  
    163.     var info = "<table border=1>";  
    164.     info += "<tr bgcolor='#CDEDED' style='font-weight: bold;' ><td width='450'>用户帐号信息:</td></tr>";  
    165.     var i = 1;  
    166.     for (; !e.atEnd(); e.moveNext()) {  
    167.         var p = e.item();  
    168.   
    169.         info += "<tr style='color: red'><td > " + i + ":" + p.AccountType + "</td></tr>";  
    170.         info += "<tr style='color: red'><td > " + i + ":" + p.Caption + "</td></tr>";  
    171.         info += "<tr style='color: red'><td > " + i + ":" + p.Description + "</td></tr>";  
    172.         info += "<tr style='color: red'><td > " + i + ":" + p.Disabled + "</td></tr>";  
    173.         info += "<tr style='color: red'><td > " + i + ":" + p.Domain + "</td></tr>";  
    174.         info += "<tr style='color: red'><td > " + i + ":" + p.FullName + "</td></tr>";  
    175.         info += "<tr style='color: red'><td > " + i + ":" + p.InstallDate + "</td></tr>";  
    176.         info += "<tr style='color: red'><td > " + i + ":" + p.LocalAccount + "</td></tr>";  
    177.         info += "<tr style='color: red'><td > " + i + ":" + p.Lockout + "</td></tr>";  
    178.         info += "<tr style='color: red'><td > " + i + ":" + p.Name + "</td></tr>";  
    179.         info += "<tr style='color: red'><td > " + i + ":" + p.PasswordChangeable + "</td></tr>";  
    180.         info += "<tr style='color: red'><td > " + i + ":" + p.PasswordExpires + "</td></tr>";  
    181.         info += "<tr style='color: red'><td > " + i + ":" + p.PasswordRequired + "</td></tr>";  
    182.         info += "<tr style='color: red'><td > " + i + ":" + p.SID + "</td></tr>";  
    183.         info += "<tr style='color: red'><td > " + i + ":" + p.SIDType + "</td></tr>";  
    184.         info += "<tr style='color: red'><td > " + i + ":" + p.Status + "</td></tr>";  
    185.         i++;  
    186.     }  
    187.     info += "</table>";  
    188.     return info;  
    189. }  
    190.   
    191. //系统组帐号信息  
    192. function SysuidInfo() {  
    193.     var locator = new ActiveXObject("WbemScripting.SWbemLocator");  
    194.     var service = locator.ConnectServer(".");  
    195.     var properties = service.ExecQuery("SELECT * FROM Win32_GroupUser");  
    196.     var e = new Enumerator(properties);  
    197.     var info = "<table border=1>";  
    198.     info += "<tr bgcolor='#CDEDED' style='font-weight: bold;' ><td colspan='3'>系统组帐号信息:</td></tr>";  
    199.     info += "<tr style='color: red'><td >id</td><td >GroupComponent</td><td >PartComponent</td></tr>";  
    200.     var i = 1;  
    201.     for (; !e.atEnd(); e.moveNext()) {  
    202.         var p = e.item();  
    203.   
    204.         info += "<tr style='color: red'><td > " + i + "</td>";  
    205.         info += "<td>" + p.GroupComponent + "</td>";  
    206.         info += "<td>" + p.PartComponent + "</td></tr>";  
    207.         i++;  
    208.     }  
    209.     info += "</table>";  
    210.     return info;  
    211. }  
    212.   
    213. //系统管理组信息  
    214. function SysmadInfo() {  
    215.     var locator = new ActiveXObject("WbemScripting.SWbemLocator");  
    216.     var service = locator.ConnectServer(".");  
    217.     var properties = service.ExecQuery("SELECT * FROM Win32_Group");  
    218.     var e = new Enumerator(properties);  
    219.     var info = "<table border=1>";  
    220.     info += "<tr bgcolor='#CDEDED' style='font-weight: bold;' ><td colspan='10'>系统管理组信息:</td></tr>";  
    221.     info += "<tr style='color: red'><td >id</td><td >Caption</td><td >Description</td><td >Domain</td><td >InstallDate</td><td >LocalAccount</td><td >Name</td><td >SID</td><td >SIDType</td><td >Status</td></tr>";  
    222.     var i = 1;  
    223.     for (; !e.atEnd(); e.moveNext()) {  
    224.         var p = e.item();  
    225.   
    226.         info += "<tr style='color: red'><td>" + i + "</td>";  
    227.         info += "<td>" + p.Caption + "</td>";  
    228.         info += "<td>" + p.Description + "</td>";  
    229.         info += "<td>" + p.Domain + "</td>";  
    230.         info += "<td>" + p.InstallDate + "</td>";  
    231.         info += "<td>" + p.LocalAccount + "</td>";  
    232.         info += "<td>" + p.Name + "</td>";  
    233.         info += "<td>" + p.SID + "</td>";  
    234.         info += "<td>" + p.SIDType + "</td>";  
    235.         info += "<td>" + p.Status + "</td></tr>";  
    236.         i++;  
    237.     }  
    238.     info += "</table>";  
    239.     return info;  
    240. }  
    241.   
    242. //系统安装的服务信息  
    243. function SysserInfo() {  
    244.     var locator = new ActiveXObject("WbemScripting.SWbemLocator");  
    245.     var service = locator.ConnectServer(".");   
    246.     var properties = service.ExecQuery("SELECT * FROM Win32_Service");  
    247.     var e = new Enumerator(properties);  
    248.     var info = "<table border=1>";  
    249.     info += "<tr bgcolor='#CDEDED' style='font-weight: bold;' ><td colspan='26'>系统安装的服务信息:</td></tr>";  
    250.     info += "<tr style='color: red'><td>id</td><td>AcceptPause</td><td>AcceptStop</td><td>Caption</td><td>CheckPoint</td><td>CreationClassName</td><td>Description</td><td>DesktopInteract</td><td>DisplayName</td><td>ErrorControl</td><td>ExitCode</td><td>InstallDate</td><td>Name</td><td>PathName</td><td>ProcessId</td><td>ServiceSpecificExitCode</td><td>ServiceType</td><td>Started</td><td>StartMode</td><td>StartName</td><td>State</td><td>Status</td><td>SystemCreationClassName</td><td>SystemName</td><td>TagId</td><td>WaitHint</td></tr>";  
    251.     var i = 1;  
    252.     for (; !e.atEnd(); e.moveNext()) {  
    253.         var p = e.item();  
    254.   
    255.         info += "<tr style='color: red'><td> " + i + "</td> ";  
    256.         info += " <td>" + p.AcceptPause + "</td> ";  
    257.         info += " <td>" + p.AcceptStop + "</td> ";  
    258.         info += " <td>" + p.Caption + "</td> ";  
    259.         info += " <td>" + p.CheckPoint + "</td> ";  
    260.         info += " <td>" + p.CreationClassName + "</td> ";  
    261.         info += " <td>" + p.Description + "</td> ";  
    262.         info += " <td>" + p.DesktopInteract + "</td> ";  
    263.         info += " <td>" + p.DisplayName + "</td> ";  
    264.         info += " <td>" + p.ErrorControl + "</td> ";  
    265.         info += " <td>" + p.ExitCode + "</td> ";  
    266.         info += " <td>" + p.InstallDate + "</td> ";  
    267.         info += " <td>" + p.Name + "</td> ";  
    268.         info += " <td>" + p.PathName + "</td> ";  
    269.         info += " <td>" + p.ProcessId + "</td> ";  
    270.         info += " <td>" + p.ServiceSpecificExitCode + "</td> ";  
    271.         info += " <td>" + p.ServiceType + "</td> ";  
    272.         info += " <td>" + p.Started + "</td> ";  
    273.         info += " <td>" + p.StartMode + "</td> ";  
    274.         info += " <td>" + p.StartName + "</td> ";  
    275.         info += " <td>" + p.State + "</td> ";  
    276.         info += " <td>" + p.Status + "</td> ";  
    277.         info += " <td>" + p.SystemCreationClassName + "</td> ";  
    278.         info += " <td>" + p.SystemName + "</td> ";  
    279.         info += " <td>" + p.TagId + "</td> ";  
    280.         info += " <td>" + p.WaitHint + "</td></tr>";  
    281.         i++;  
    282.     }  
    283.     info += "</table>";  
    284.     return info;  
    285. }    

    代码实现主要包括这几部分:  
            先通过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                  // 已安装的网络协议

  • 相关阅读:
    Android编码规范03
    Android编码规范02
    Android编码规范01
    函数返回值类型为枚举类型
    ObjectAnimator属性动画应用demo
    n个元素的入栈顺序有多少种出栈顺序?
    JNI笔记1
    字符串——面试题1:统计一行字符中有多少个单词?
    快速排序算法
    es6之 async await 使用小计
  • 原文地址:https://www.cnblogs.com/duyinqiang/p/5696256.html
Copyright © 2011-2022 走看看