+316原创程序 +49收集论文 +84原创文章 +1670VIP客户 +3368107总访问量
您的位置:首页 > 设计师随笔 > php获取mac地址保证客户端提交数据的唯一性
php获取mac地址保证客户端提交数据的唯一性
作者/来源:原创    时间:2014-11-03    关注4166次

  今天遇到一个特殊的客户,他要求的网站的会员在某台电脑上登录网站后获得积分,然后24小时内,任何其他会员在该电脑上登录均不会获得积分。

  开始,我们给出的方案是cookie,但是众所周知cookie可以被用户手动清除,而且清除的技术含量很低,基本都会用,这就不能采用此方法;后经过讨论,最终确定的方案是用mac地址,每台电脑网卡的mac地址是唯一的,我们可以用程序读出mac地址,记录进数据库,这样就可以实现客户的要求,而且mac地址作弊的技术含量比较高。

下面分享一个在网上搜集的,用php获取mac地址的类,本人实测有效:


<?php  
    class GetMacAddr{           
            var $return_array = array(); 
            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毕业设计,php课程设计,php期末作业,php大作业,品质保证 访问:3368107次  
9laile.com源码在线销售平台由本站设计师齐工独立研发
当前版本V1.1.18
皖ICP备05020966号

皖公网安备 34072202000111号

 68813382