php获取网卡MAC地址源码

<?php
/**
获取网卡的MAC地址原码;目前支持WIN/LINUX系统
获取机器网卡的物理(MAC)地址
**/  

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"]."\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;
              }
         }  

         function forLinux(){
              @exec("ifconfig -a", $this->return_array);
              return $this->return_array;
         }  

}
//方法使用
//$mac = new GetMacAddr(PHP_OS);
//echo $mac->mac_addr;

// $mac = new GetMacAddr(PHP_OS);
// $macAddr = $mac->mac_addr;
// $arr  = $mac->forWindows();
?>