2008/09/21 | PHP获取网卡的MAC地址
类别(网络工程师) | 评论(0) | 阅读(91) | 发表于 11:22
在网上找到的代码  还没测试

<?  php
/* *
        获取机器网卡的物理(MAC)地址
        wwa  $ Exp
* */
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;
?>
0

评论Comments