在项目中,客户需要系统在win系统上获取MAC地址、CPU序列号和主板序列号等,在网上搜索下,通过windows系统命令wmic可以获取,测试基本可行,HardwareInfo.php源代码如下:
$val){
if(!empty($val) && $k>0){
$mac_addr[$key] = $val;
//去除字符串中的字符“:”
$mac_addr[$key] = str_replace(":", "", $mac_addr[$key]);
$key++;
}
}
return $mac_addr;
}
//获取CPU序列号
function getCpuSN(){
$return_arry = array();
@exec("wmic cpu get processorid", $return_arry);
$cpu_sn = $return_arry[1];
return $cpu_sn;
}
//获取主板序列号
function getBaseboardSN(){
$return_arry = array();
@exec("wmic baseboard get serialnumber", $return_arry);
$baseboard_sn = $return_arry[1];
//去除字符串中的字符“-”
$baseboard_sn = str_replace("-", "", $baseboard_sn);
return $baseboard_sn;
}
}
?>
使用示例test.php如下:
getMacAddress();
$cpu_sn = $hw_addr->getCpuSN();
$baseboard_sn = $hw_addr->getBaseboardSN();
foreach ($mac_addr as $val){
echo 'MAC地址:'.$val.'
';
}
echo 'CPU序列号:'.$cpu_sn.'
';
echo '主板地址:'.$baseboard_sn.'
';
?>
Windows系统下使用wmic命令查看硬件信息
1、查询网卡信息:wmic nicconfig get macaddress
2、查询cpu序列号:wmic cpu get processorid
3、查询主板序列号:wmic baseboard get serialnumber
4、查询BIOS序列号:wmic bios get serialnumber
补充:在有些电脑上查询结果未正常显示,而是出现“To be filled by OEM”,可能是系统出问题了。