Chinaunix首页 | 论坛 | 博客
  • 博客访问: 460504
  • 博文数量: 141
  • 博客积分: 211
  • 博客等级: 入伍新兵
  • 技术积分: 1049
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-17 16:25
个人简介

如此经年,望尽千帆。

文章分类

全部博文(141)

文章存档

2014年(73)

2013年(65)

2012年(3)

我的朋友

分类: PHP

2014-05-15 11:54:41

分享下php获取服务器端和客户端mac地址的方法。
例1,获取服务器mac 地址。

  1. <?php
  2. /**
  3. 获取网卡的MAC地址原码;目前支持WIN/LINUX系统
  4. 获取机器网卡的物理(MAC)地址
  5. **/
  6. class GetmacAddr{
  7. var $result = array(); // 返回带有MAC地址的字串数组
  8. var $macAddr;
  9. /*构造*/ www.jbxue.com
  10. function __construct($osType){
  11. switch ( strtolower($osType) ){
  12. case "unix": break;
  13. case "solaris": break;
  14. case "aix": break;
  15. case "linux": {
  16. $this->for_linux_os();
  17. }break;
  18. default: {
  19. $this->for_windows_os();
  20. }break;
  21. }
  22. $temp_array = array();
  23. foreach($this->result as $value){
  24. 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,
  25. $temp_array ) ){
  26. $this->macAddr = $temp_array[0];
  27. break;
  28. }
  29. }
  30. unset($temp_array);
  31. return $this->macAddr;
  32. }
  33. /*linux系统中获取方法*/
  34. function for_linux_os(){
  35. @exec("ifconfig -a", $this->result);
  36. return $this->result;
  37. }
  38. /*win系统中的获取方法*/
  39. function for_windows_os(){
  40. @exec("ipconfig /all", $this->result);
  41. if ( $this->result ) {
  42. return $this->result;
  43. } else {
  44. $ipconfig = $_SERVER["WINDIR"]."\system32\ipconfig.exe";
  45. if(is_file($ipconfig)) {
  46. @exec($ipconfig." /all", $this->result);
  47. } else {
  48. @exec($_SERVER["WINDIR"]."\system\ipconfig.exe /all", $this->result);
  49. return $this->result;
  50. }
  51. }
  52. }
  53. }
  54. ?>
例2,获取客户端mac地址: 

  1. @exec("arp -a",$array); //执行arp -a命令,结果放到数组$array中
  2. foreach($array as $value){
  3. //匹配结果放到数组$mac_array
  4. if(strpos($value,$_SERVER["REMOTE_ADDR"]) && preg_match("/(:?[0-9A-F]{2}[:-]){5}[0-9A-F]{2}/i",$value,$mac_array)){
  5. $mac = $mac_array[0];
  6. break;
  7. }
  8. }
  9. echo $mac;
注意:客户端获取的mac不能在本机测试,只能用别的电脑访问才能输出

您可能感兴趣的文章:

本文原始链接:
阅读(1742) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~