[TOC] ``` class MacAddress{ public $return_array = array(); // 返回带有MAC地址的字串数组 public $mac_addr; static function getMacAddr(){ $static = new static(); $os_type = strtoupper(substr(PHP_OS, 0, 3)) === 'WIN' ? 'windows' : 'linux'; switch(strtolower($os_type)){ case "linux": $static->forLinux(); break; case "solaris": break; case "unix": break; case "aix": break; default: $static->forWindows(); break; } $temp_array = array(); foreach($static->return_array as $value){ if(preg_match( "/ether ([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)){ $static->mac_addr = $temp_array[1]; break; } } unset($temp_array); $static->mac_addr = str_replace("-", "", $static->mac_addr); $static->mac_addr = str_replace(":", "", $static->mac_addr); return $static->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("ip a", $this->return_array); return $this->return_array; } } // 使用 MacAddress::getMacAddr(); ```