您当前的位置: 首页 > 网站编程 > PHP教程 > php/js获取客户端mac地址的实现代码

php/js获取客户端mac地址的实现代码

作者:不详 来源:网络 发布时间: 2014-08-17 23:00 点击:
这篇文章主要介绍了如何在php与js中分别获取客户度mac地址的方法,需要的朋友可以参考下 废话不多讲,直接上代码吧! 复制代码 代码如下: ?php class MacAddr { public $returnArray = array(); public $macAddr; function __contruct($os_type=null){ if(is_null($os_

php/js获取客户端mac地址的实现代码

  这篇文章主要介绍了如何在php与js中分别获取客户度mac地址的方法,需要的朋友可以参考下

  废话不多讲,直接上代码吧!

  复制代码 代码如下:

  <?php 

  class MacAddr

  { 

     public $returnArray = array();  

     public $macAddr; 

     function __contruct($os_type=null){

         if(is_null($os_type)) $os_type = PHP_OS; 

         switch (strtolower($os_type)){ 

         case "linux": 

             $this->forLinux(); 

             break; 

         case "solaris": 

             break; 

         case "unix": 

             break; 

         case "aix": 

             break; 

         default: 

             $this->forWindows(); 

             break; 

         } 

         $temp_array = array(); 

         foreach($this->returnArray as $value ){ 

             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)){ 

                 $this->macAddr = $temp_array[0]; 

                 break; 

             } 

         } 

         unset($temp_array); 

         return $this->macAddr; 

     }

     function forWindows(){ 

         @exec("ipconfig /all", $this->returnArray); 

         if($this->returnArray) 

             return $this->returnArray; 

         else{ 

             $ipconfig = $_SERVER["WINDIR"]."system32ipconfig.exe"; 

             if (is_file($ipconfig)) 

                 @exec($ipconfig." /all", $this->returnArray); 

             else

                 @exec($_SERVER["WINDIR"]."systemipconfig.exe /all", $this->returnArray); 

             return $this->returnArray; 

         } 

     }

     function forLinux(){ 

         @exec("ifconfig -a", $this->returnArray); 

         return $this->returnArray; 

     } 

  } 

  $mac = new MacAddr(PHP_OS); 

  echo $mac->macAddr; 

  echo "<br />";

  // 获取客户端

  // linux

  $command = "arp -a {$_SERVER['REMOTE_ADDR']}";

  echo $command;

  echo "<br />";

  $result=`{$command}`;

  // windows

  $command = "nbtstat -a {$_SERVER['REMOTE_ADDR']}";

  echo $command;

  echo "<br />";

  $result=`{$command}`;

  print_r($result); 

  ?>

  获取服务端的逻辑没什么大问题,可能会存在权限问题。

  获取客户端的时候,可能会比较慢,arp/nbstat命令执行会比较慢。

  复制代码 代码如下:

  <script language="JScript" event="OnCompleted(hResult,pErrorObject, pAsyncContext)" for="foo">  

  document.forms[0].lbMacAddr.value=unescape(MACAddr);  

  </script> 

  <script language="JScript" event="OnObjectReady(objObject,objAsyncContext)" for="foo">  

  if(objObject.IPEnabled != null && objObject.IPEnabled != "undefined" && objObject.IPEnabled == true && objObject.MACAddress != null && objObject.MACAddress != "undefined") MACAddr = objObject.MACAddress;  

  </script> 

  <object id="locator" classid="CLSID:76A64158-CB41-11D1-8B02-00600806D9B6"></object> 

  <object id="foo" classid="CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223"></object> 

  <script language="JScript">  

  var service = locator.ConnectServer();  

  var MACAddr ;  

  var IPAddr ;  

  var DomainAddr;  

  var sDNSName;  

  service.Security_.ImpersonationLevel=3;  

  service.InstancesOfAsync(foo, 'Win32_NetworkAdapterConfiguration');  

  </script> 

  <form><input type="text" id='lbMacAddr' name='lbMacAddr' /></form>

  只适用于IE浏览器,而且会有告警提示,挺遗憾的。
分享到:
本文"php/js获取客户端mac地址的实现代码"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4