php如何获取客户端唯一标识符IP?mac地址? 200

项目中,注册页面,用户不停获取验证码,想实现获取5次,就根据来源ip封住24小时,//实现你获取验证码次数过多,24小时再重试,php获取的ip,根据封不住的,用户把网断... 项目中,注册页面,用户不停获取验证码,想实现获取5次,就根据来源ip封住24小时,
//实现你获取验证码次数过多,24小时再重试,php获取的ip,根据封不住的,用户把网断开,重新拨号,ip就变了,又可以注册了,想到获取用户mac地址来判断,但是发现php无法获取客户端mac地址,
怎么实现封ip,用户重新换ip或者用代理也不行的? wei博和白du 可以封住的,他们根据就不是获取ip来判断的吧!求解决
展开
 我来答
天赐丶淡雅香9
2016-07-22 · TA获得超过108个赞
知道答主
回答量:107
采纳率:0%
帮助的人:40.6万
展开全部
<?php       
    class GetMacAddr{
            var $return_array = array(); // 返回带有MAC地址的字串数组
            var $mac_addr;
            function GetMacAddr($os_type){
                    switch(strtolower($os_type)){   
                            case "linux":$this->forLinux();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;   
                    }   
            }   
      }   
   //---实例化类
    $mac = new GetMacAddr(PHP_OS);   
    echo $mac->mac_addr;   
    echo "<br />";   
    echo md5($mac->mac_addr);        
    ?> 
以上代码是获取mac地址的代码,在网上抄的,但实测有效,括号,我x,我第一次知道原来php也可以执行命令行。。。
 
至于如何限制,应该是去截取mac的一部分经行if判断就可以了,你先尝试一下
追问
这代码网上转的吧,这个只能获取自己服务器的mac地址
Storm代理
2023-07-25 广告
StormProxies是一家提供动态代理服务器服务的企业,旨在帮助用户更好地管理网络访问和安全。以下是一些关于StormProxies的IP动态代理服务的特点:1. 高匿名性:StormProxies的动态代理服务器具有高匿名性,可以有效... 点击进入详情页
本回答由Storm代理提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式