PHP获得计算机的唯一标识[cpu,网卡]

以下是从网上转载来的源码,但是我测试均不能执行,不知道怎么回事,转过来大家可以交流一下

<?php
//获取电脑的CPU信息
function OnlyU(){
$a = '';
$b = array();
if(function_exists('exec')){
if(mailto:!@exec(/all",$b)){
return false;
}
}elseif(function_exists('system')){
ob_start();
if(mailto:!@system( /all")){
return false;
}else{
//...
}
$b = ob_get_contents();
ob_end_clean();
$b = explode(" ",$b);//print_r($b);
array_pop($b);
}else{
return false;
}
$all = sizeof($b);
for($i = 0; $i < $all; $i++){
if(strpos($b[$i],"Description") !== false){
if(strpos($b[$i+1],"Physical Address") !== false){
$c = explode(":",$b[$i+1]);
$a = trim($c[1]);
break;
}
}
}
return empty($a)?false:$a;
}
//获取网卡的MAC的地址
function getMAC() {
@exec("ipconfig /all",$array);
for($Tmpa;$Tmpa<count($array);$Tmpa++){
if(eregi("Physical",$array[$Tmpa])){
$mac=explode(":",$array[$Tmpa]);
return $mac[1];
}
}
}
echo OnlyU();
echo getMAC();
?>

//获取网卡的MAC的地址
<?php
class GetMacAddr
{
var $return_array = array(); // 返回带有MAC地址的字串数组
var $mac_addr;
function GetMacAddr($os_type)
{
switch(strtolower($os_type) )
{
case "linux ":
$this-> forLinux();
break;
case "solaris ":
break;
case "unix ":
break;
case "aix ":
break;
default:
$this-> forWindows();
break;
}
$temp_array = array();
foreach ( $this-> return_array as $value )
{
if(preg_match( "/[0-9a-f][0-9a-f][:-] ". "[0-9a-f][0-9a-f][:-] ". "[0-9a-f][0-9a-f][:-] ". "[0-9a-f][0-9a-f][:-] ". "[0-9a-f][0-9a-f][:-] ". "[0-9a-f][0-9a-f]/i ", $value, $temp_array)) {
$this-> mac_addr = $temp_array[0];
break;
}
}
unset($temp_array);
return $this-> mac_addr;
}
function forWindows()
{
@exec( "ipconfig /all ",$this-> return_array);
if($this-> return_array){
return $this-> return_array;
}else{
$ipconfig = $_SERVER[ "WINDIR "]. "system32ipconfig.exe ";
if(is_file($ipconfig)){
@exec($ipconfig. " /all ", $this-> return_array);
}else{
@exec($_SERVER[ "WINDIR "]. "systemipconfig.exe /all ", $this-> return_array);
}
return $this-> return_array;
}
}
function forLinux()
{
@exec( "ifconfig -a ", $this-> return_array);
return $this-> return_array;
}
}
$mac = new GetMacAddr(PHP_OS);
echo $mac-> mac_addr;
?>

原文地址:https://www.cnblogs.com/jyb2014/p/4112805.html