php如何获取服务器端mac与客户端mac地址

分享下php获取服务器端 mac地址 和客户端mac地址的方法。 l
例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不能在本机测试,只能用别的电脑访问才能输出
本文原始链接:http://www.jbxue.com/article/php/20303.html
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值