国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PHP > 正文

php獲取客戶端mac地址程序代碼

2024-05-04 21:48:27
字體:
供稿:網(wǎng)友

mac地址是網(wǎng)卡地址一般情況下是無法獲取到用戶的mac地址地的,因為安全限制了瀏覽器所以幾乎不太可能獲取到了,下面拿兩段代碼給大家玩玩.

例1,PHP代碼如下:

  1. <?php 
  2.   @exec("arp -a",$array); //執(zhí)行arp -a命令,結(jié)果放到數(shù)組$array中 
  3.   echo "<pre>"
  4.   print_r($array); //打印獲取的數(shù)組 
  5.    
  6.   foreach($array as $value
  7.   { 
  8.       if//匹配結(jié)果放到數(shù)組$mac_array 
  9.       strpos($value,$_SERVER["REMOTE_ADDR"]) && 
  10.       preg_match("/(:?[0-9a-f]{2}[:-]){5}[0-9a-f]{2}/i",$value,$mac_array
  11.       )//開源代碼Vevb.com 
  12.       { 
  13.           $mac = $mac_array[0]; 
  14.           break
  15.       } 
  16.   } 
  17.   echo $mac//輸出客戶端MAC 
  18. ?> 

例2,代碼如下:

  1. <?php    
  2. class MacAddr  
  3. {    
  4.     public $returnArray = array();     
  5.     public $macAddr;    
  6.    
  7.     function __contruct($os_type=null){  
  8.         if(is_null($os_type)) $os_type = PHP_OS;    
  9.         switch (strtolower($os_type)){    
  10.         case "linux":    
  11.             $this->forLinux();    
  12.             break;    
  13.         case "solaris":    
  14.             break;    
  15.         case "unix":    
  16.             break;    
  17.         case "aix":    
  18.             break;    
  19.         default:    
  20.             $this->forWindows();    
  21.             break;    
  22.         }    
  23.         $temp_array = array();    
  24.         foreach($this->returnArray as $value ){    
  25.             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)){    
  26.                 $this->macAddr = $temp_array[0];    
  27.                 break;    
  28.             }    
  29.         }    
  30.         unset($temp_array);    
  31.         return $this->macAddr;    
  32.     }  
  33.    
  34.     function forWindows(){    
  35.         @exec("ipconfig /all"$this->returnArray);    
  36.         if($this->returnArray)    
  37.             return $this->returnArray;    
  38.         else{    
  39.             $ipconfig = $_SERVER["WINDIR"]."system32ipconfig.exe";    
  40.             if (is_file($ipconfig))    
  41.                 @exec($ipconfig." /all"$this->returnArray);    
  42.             else   
  43.                 @exec($_SERVER["WINDIR"]."systemipconfig.exe /all"$this->returnArray);    
  44.             return $this->returnArray;    
  45.         }    
  46.     }  
  47.    
  48.     function forLinux(){    
  49.         @exec("ifconfig -a"$this->returnArray);    
  50.         return $this->returnArray;    
  51.     }    
  52. }    
  53.    
  54. $mac = new MacAddr(PHP_OS);    
  55. echo $mac->macAddr;    
  56. echo "<br />";  
  57.    
  58. // 獲取客戶端  
  59. // linux  
  60. $command = "arp -a {$_SERVER['REMOTE_ADDR']}";  
  61. echo $command;  
  62. echo "<br />";  
  63. $result=`{$command}`;   
  64.    
  65. // windows  
  66. $command = "nbtstat -a {$_SERVER['REMOTE_ADDR']}";  
  67. echo $command;  
  68. echo "<br/>";  
  69. $result=`{$command}`;   
  70. print_r($result);    
  71. ?> 

獲取服務(wù)端的邏輯沒什么大問題,可能會存在權(quán)限問題,獲取客戶端的時候,可能會比較慢,arp/nbstat命令執(zhí)行會比較慢,代碼如下:

  1. <script language="JScript" event="OnCompleted(hResult,pErrorObject, pAsyncContext)" for="foo">     
  2. document.forms[0].lbMacAddr.value=unescape(MACAddr);     
  3. </script>    
  4. <script language="JScript" event="OnObjectReady(objObject,objAsyncContext)" for="foo">     
  5. if(objObject.IPEnabled != null && objObject.IPEnabled != "undefined" && objObject.IPEnabled == true && objObject.MACAddress != null && objObject.MACAddress != "undefined") MACAddr = objObject.MACAddress;     
  6. </script>    
  7. <object id="locator" classid="CLSID:76A64158-CB41-11D1-8B02-00600806D9B6"></object>    
  8. <object id="foo" classid="CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223"></object>    
  9. <script language="JScript">     
  10. var service = locator.ConnectServer();     
  11. var MACAddr ;     
  12. var IPAddr ;     
  13. var DomainAddr;     
  14. var sDNSName;     
  15. service.Security_.ImpersonationLevel=3;     
  16. service.InstancesOfAsync(foo, 'Win32_NetworkAdapterConfiguration');     
  17. </script>    
  18. <form><input type="text" id='lbMacAddr' name='lbMacAddr' /></form> 

只適用于IE瀏覽器,而且會有告警提示.

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 洛川县| 剑河县| 伊宁市| 民丰县| 双柏县| 钟祥市| 海原县| 三门县| 英德市| 都江堰市| 怀来县| 苏尼特左旗| 连城县| 巴东县| 新郑市| 四子王旗| 澎湖县| 峡江县| 汶川县| 永和县| 道孚县| 旌德县| 绥棱县| 泰兴市| 衡阳市| 宝鸡市| 抚松县| 德江县| 棋牌| 夏河县| 子长县| 汝阳县| 固始县| 南康市| 孝义市| 安溪县| 古丈县| 中江县| 武功县| 信宜市| 泰宁县|