PHP获取MAC地址

来源:互联网 发布:查看mac激活时间 编辑:程序博客网 时间:2024/05/17 04:17


http://www.cnblogs.com/nackman/archive/2012/07/22/2603443.html


  

/**   
获取网卡的MAC地址原码;目前支持WIN/LINUX系统   
获取机器网卡的物理(MAC)地址
**/     
class GetmacAddr{   
    var $result = array(); // 返回带有MAC地址的字串数组   
    var $macAddr;  
    /*构造*/  
    function __construct($osType){   
        switch ( strtolower($osType) ){   
            case "unix": break;  
            case "solaris": break;  
            case "aix": break;  
            case "linux": {  
                $this->for_linux_os();  
            }break;   
            default: {   
                $this->for_windows_os();   
            }break;   
        }   
        $temp_array = array();   
        foreach($this->result 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->macAddr = $temp_array[0];   
                break;   
            }   
        }   
        unset($temp_array);   
        return $this->macAddr;   
    }  
    /*linux系统中获取方法*/  
    function for_linux_os(){   
        @exec("ifconfig -a", $this->result);   
        return $this->result;   
    }  
    /*win系统中的获取方法*/  
    function for_windows_os(){   
        @exec("ipconfig /all", $this->result);   
        if ( $this->result ) {  
            return $this->result;  
        } else {   
            $ipconfig = $_SERVER["WINDIR"]."system32ipconfig.exe";  
            if(is_file($ipconfig)) {  
                @exec($ipconfig." /all", $this->result);  
            } else {  
                @exec($_SERVER["WINDIR"]."systemipconfig.exe /all", $this->result);  
                return $this->result;   
            }  
        }   
    }   
}   


//获得服务器端的mac地址
$mac1 = new GetMacAddr(PHP_OS);
echo $mac1->macAddr;  
echo "<br/>";




//获得客户端的mac地址
@exec("arp -a",$array); //执行arp -a命令,结果放到数组$array中

foreach($array as $value){
//匹配结果放到数组$mac_array
if(strpos($value,$_SERVER["REMOTE_ADDR"]) && preg_match("/(:?[0-9A-F]{2}[:-]){5}[0-9A-F]{2}/i",$value,$mac_array)){
$mac = $mac_array[0];
break;
}
}
echo $mac;


?>     

 




0 0
原创粉丝点击