好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

php用什么方式获取mac地址

获取客户端的mac地址是非常有用的一个功能,因为它是客户端的不可变的唯一标识,更换IP或者清除本地记录都是没用的。

所以获取mac地址经常会用到购买软件时的一机一激活码,网站注册每台机器只能注册一次等等。

在电商系统开发中,常见的一个功能就是:用户在没有登录的状态下将商品加入购物车,登录后自动将购物车数据同步上来。

对此的解决办法我们一般都是使用 COOKIE或者SESSION解决即可。其实也可以用获取客户端的mac地址作为唯一标识存入到数据库中,登录成功后再进行匹配。 (推荐学习:PHP视频教程)

MAC地址用于在网络中唯一标示一个网卡,一台设备若有一或多个网卡,则每个网卡都需要并会有一个唯一的MAC地址 。

大数据时代的云很多时候都有用到此类方法。

网上查询整理的代码如下:

<?php 
    /** 
    获取网卡的MAC地址原码;目前支持WIN/LINUX系统 
    获取机器网卡的物理(MAC)地址 
    **/ 
    
    class GetMacAddr{ 
    
  var $return_array = array(); // 返回带有MAC地址的字串数组 
  var $mac_addr; 
    
  function GetMacAddr($os_type){ 
  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->return_array 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->mac_addr = $temp_array[0]; 
  break; 
  } 

   } 
   unset($temp_array); 
   return $this->mac_addr; 
   } 


   function forWindows(){ 
   @exec("ipconfig /all", $this->return_array); 
   if ( $this->return_array ) 
  return $this->return_array; 
   else{ 
  $ipconfig = $_SERVER["WINDIR"]."\system32\ipconfig.exe"; 
  if ( is_file($ipconfig) ) 
@exec($ipconfig." /all", $this->return_array); 
  else 
@exec($_SERVER["WINDIR"]."\system\ipconfig.exe /all", $this->return_array); 
  return $this->return_array; 
   } 
   } 



   function forLinux(){ 
   @exec("ifconfig -a", $this->return_array); 
   return $this->return_array; 
   } 

    } 
//方法使用
$mac = new GetMacAddr(PHP_OS); 
echo $mac->mac_addr; 
?> 

以上就是php用什么方式获取mac地址的详细内容,更多请关注Gxl网其它相关文章!

查看更多关于php用什么方式获取mac地址的详细内容...

  阅读:59次