PHP获取MAC地址

来源:互联网 发布:中国医疗知乎 编辑:程序博客网 时间:2024/05/18 11:31

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

 

  1. <?php  
  2. /**  
  3. 获取网卡的MAC地址原码;目前支持WIN/LINUX系统  
  4. 获取机器网卡的物理(MAC)地址  
  5. **/  
  6.     
  7. class GetMacAddr{  
  8.     
  9.         var $return_array = array(); // 返回带有MAC地址的字串数组  
  10.         var $mac_addr;  
  11.     
  12.         function GetMacAddr($os_type){  
  13.              switch ( strtolower($os_type) ){  
  14.                       case "linux":  
  15.                                 $this->forLinux();  
  16.                                 break;  
  17.                       case "solaris":  
  18.                                 break;  
  19.                       case "unix":  
  20.                                  break;  
  21.                        case "aix":  
  22.                                  break;  
  23.                        default:  
  24.                                  $this->forWindows();  
  25.                                  break;  
  26.      
  27.               }  
  28.      
  29.                 
  30.               $temp_array = array();  
  31.               foreach ( $this->return_array as $value ){  
  32.      
  33.                         if (  
  34. 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,  
  35. $temp_array ) ){  
  36.                                  $this->mac_addr = $temp_array[0];  
  37.                                  break;  
  38.                        }  
  39.      
  40.               }  
  41.               unset($temp_array);  
  42.               return $this->mac_addr;  
  43.          }  
  44.      
  45.      
  46.          function forWindows(){  
  47.               @exec("ipconfig /all"$this->return_array);  
  48.               if ( $this->return_array )  
  49.                        return $this->return_array;  
  50.               else{  
  51.                        $ipconfig = $_SERVER["WINDIR"]."\system32\ipconfig.exe";  
  52.                        if ( is_file($ipconfig) )  
  53.                           @exec($ipconfig." /all"$this->return_array);  
  54.                        else  
  55.                           @exec($_SERVER["WINDIR"]."\system\ipconfig.exe /all"$this->return_array);  
  56.                        return $this->return_array;  
  57.               }  
  58.          }  
  59.      
  60.      
  61.      
  62.          function forLinux(){  
  63.               @exec("ifconfig -a"$this->return_array);  
  64.               return $this->return_array;  
  65.          }  
  66.      
  67. }  
  68. //方法使用  
  69. //$mac = new GetMacAddr(PHP_OS);  
  70. //echo $mac->mac_addr;  
  71. ?>