php获取网卡的mac地址

Posted on 2008-08-15 10:11  flourish  阅读(535)  评论(0)    收藏  举报
  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. ?>  

博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3