IT技术博客大学习 共学习 共进步

php获取网卡MAC地址类

Everyday NetLog 2010-03-26 14:23:50 浏览 4,685 次
忽然想到,判断同机登陆的问题。记录MAC是个好办法,顺便查了这个PHP方法,备注以便以后使用。
实现很简单,就是分别调用系统命令,返回到数组中。
  1. <?php   
  2. class GetMacAddr   
  3. {   
  4.         var $return_array = array(); // 返回带有MAC地址的字串数组   
  5.         var $mac_addr=array();   
  6.            
  7.         function GetMacAddr()   
  8.         {   
  9.              switch (strtolower(PHP_OS) )   
  10.                 {   
  11.                         case "linux":$this->forLinux();break;   
  12.                         case "solaris":break;   
  13.                         case "unix":break;   
  14.                         case "aix":break;   
  15.                         default:$this->forWindows();break;   
  16.                 }   
  17.        
  18.                    
  19.                 $temp_array = array();   
  20.                 foreach ( $this->return_array as $value )   
  21.                 {   
  22.                         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 ) )   
  23.                         {   
  24.                                 $this->mac_addr[] = $temp_array[0];   
  25.                         }   
  26.                 }   
  27.                 unset($temp_array);   
  28.                 return $this->mac_addr;   
  29.         }   
  30.   
  31.         function forWindows()   
  32.         {   
  33.                 @exec("ipconfig /all"$this->return_array);   
  34.                 if ( $this->return_array )   
  35.                         return $this->return_array;   
  36.                 else{   
  37.                         $ipconfig = $_SERVER["WINDIR"]."\system32\ipconfig.exe";   
  38.                         if ( is_file($ipconfig) )   
  39.                            @exec($ipconfig." /all"$this->return_array);   
  40.                         else  
  41.                            @exec($_SERVER["WINDIR"]."\system\ipconfig.exe /all"$this->return_array);   
  42.                         return $this->return_array;   
  43.                 }   
  44.         }   
  45.   
  46.         function forLinux()   
  47.         {   
  48.                 @exec("ifconfig -a"$this->return_array);   
  49.                 return $this->return_array;   
  50.         }   
  51. }   
  52.   
  53. $mac = new GetMacAddr();   
  54. echo "<pre>";   
  55. print_r( $mac->mac_addr);   
  56. ?>   
  57.   

建议继续学习

  1. Mac下使用SecureCRT的一些记录 (阅读 7,743)
  2. 也说 Mac 的不好 (阅读 7,564)
  3. 如何查看Linux 硬件配置信息 (阅读 7,102)
  4. mac系统更换硬盘及初始化开发环境的记录 (阅读 6,485)
  5. 如何设置双网卡路由 (阅读 5,543)
  6. Macbook Air换电池教程 (阅读 5,503)
  7. 在Mac OS X中运行Apache + PHP + MySQL (阅读 5,243)
  8. Mac 锁屏的各种方法 (阅读 4,803)
  9. iTerm2 (Mac Terminal) 清空当前屏幕内容 (阅读 4,703)
  10. MYSQL数据库网卡软中断不平衡问题及解决方案 (阅读 4,661)