欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

PHP获取网卡MAC地址

程序员文章站 2024-01-22 10:53:28
...
  1. php
  2. /**
  3. 获取网卡的MAC地址原码;目前支持WIN/LINUX系统
  4. 获取机器网卡的物理(MAC)地址
  5. **/
  6. class GetMacAddr{
  7. var $return_array = array(); // 返回带有MAC地址的字串数组
  8. var $mac_addr;
  9. function GetMacAddr($os_type){
  10. switch ( strtolower($os_type) ){
  11. case "linux":
  12. $this->forLinux();
  13. break;
  14. case "solaris":
  15. break;
  16. case "unix":
  17. break;
  18. case "aix":
  19. break;
  20. default:
  21. $this->forWindows();
  22. break;
  23. }
  24. $temp_array = array();
  25. foreach ( $this->return_array as $value ){
  26. if (
  27. 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,
  28. $temp_array ) ){
  29. $this->mac_addr = $temp_array[0];
  30. break;
  31. }
  32. }
  33. unset($temp_array);
  34. return $this->mac_addr;
  35. }
  36. function forWindows(){
  37. @exec("ipconfig /all", $this->return_array);
  38. if ( $this->return_array )
  39. return $this->return_array;
  40. else{
  41. $ipconfig = $_SERVER["WINDIR"]."\system32\ipconfig.exe";
  42. if ( is_file($ipconfig) )
  43. @exec($ipconfig." /all", $this->return_array);
  44. else
  45. @exec($_SERVER["WINDIR"]."\system\ipconfig.exe /all", $this->return_array);
  46. return $this->return_array;
  47. }
  48. }
  49. function forLinux(){
  50. @exec("ifconfig -a", $this->return_array);
  51. return $this->return_array;
  52. }
  53. }
  54. //方法使用
  55. //$mac = new GetMacAddr(PHP_OS);
  56. //echo $mac->mac_addr;
  57. ?>