<?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; ?> |