You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

91 lines
2.2 KiB

<?php
if (!defined('IN_ECS'))
{
die('Hacking attempt');
}
class cls_ecmac{
var $return_array = array(); // 返回带有MAC地址的字串数组
var $mac_addr;
function __construct($os_type)
{
$this->cls_ecmac($os_type);
}
function cls_ecmac($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();
if($this->return_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;
}
else
{
$this->mac_addr=$os_type;
}
}
unset($temp_array);
}
}
function __tostring()
{
return !empty($this->mac_addr)?$this->mac_addr:'0';
}
function forWindows(){
@exec("ipconfig /all", $this->return_array);
if ( $this->return_array ){
return $this->return_array;
}else{
if(isset($_SERVER["WINDIR"])){
$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;
}else{
return $this->return_array;
}
}
}
function forLinux(){
if($this->return_array){
@exec("ifconfig -a", $this->return_array);
return $this->return_array;
}
}
}
?>