class GetMacAddr{
var $return_array = array(); // 返回带有MAC地址的字串数组
var $mac_addr;
function GetMacAddr($os_type){
switch(strtolower($os_type)){
case "linux":$this->forLinux();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"]."\system32\ipconfig.exe";
if ( is_file($ipconfig) )
@exec($ipconfig." /all", $this->return_array);
else
@exec($_SERVER["WINDIR"]."\system\ipconfig.exe /all", $this->return_array);
return $this->return_array;
}
}
}
//---实例化类
$mac = new GetMacAddr(PHP_OS);
echo $mac->mac_addr;
echo "
";
echo md5($mac->mac_addr);
?>
以上代码是获取mac地址的代码,在网上抄的,但实测有效,括号,我x,我第一次知道原来php也可以执行命令行。。。
至于如何限制,应该是去截取mac的一部分经行if判断就可以了,你先尝试一下,仍有问题追问即可