IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

php获取网卡MAC地址类

Everyday NetLog 2010-03-26 14:23:50 累计浏览 4,831 次
本机暂存
忽然想到,判断同机登陆的问题。记录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. 等了十年的 Go 链式管道,终于来了:seq 让你像写 Scala 一样写 Go (2026-06-25 18:38:18)
  2. Go 实验特性详解 (2026-06-21 10:05:27)
  3. amd64 微架构级别对 Go 程序性能提升多少? (2026-06-21 09:38:49)

查看更多 后端 文章 →

建议继续学习

  1. 使用gettext来支持PHP的多语言 (累计阅读 39,269)
  2. WordPress插件开发 -- 在插件使用数据库存储数据 (累计阅读 29,164)
  3. Paypal接口详细代码(PHP版,非API接口) (累计阅读 19,408)
  4. libcurl的使用总结(二) (累计阅读 15,083)
  5. 我的PHP,Python和Ruby之路 (累计阅读 13,146)
  6. include(“./file.php”)和include(“file.php”)区别 (累计阅读 12,789)
  7. 15个最好的免费开源电子商务平台 (累计阅读 12,541)
  8. Redis消息队列的若干实现方式 (累计阅读 12,088)
  9. 到底什么是MVC? (累计阅读 11,865)
  10. 整理了一份招PHP高级工程师的面试题 (累计阅读 11,708)