千里码-刷刷刷
2015-10-15 12:53
525 查看
千里码网站题目难度曲线比较陡,但是肯花时间去研究,提升还是相当快的。 今天的题目是刷票。
题目如下:
任何一个ugc性质的网站都需要做好一个基本功:识别哪些是真实用户沉淀的内容,哪些是程序模拟真实用户产生的恶意行为。 一般各个公司都会有一个专门的小分队:anti-spam team。 @若远同学就是专业防刷30年…
这里有一个每日最帅coder评选排行榜…
用户可以上传他认为最帅的coder的名字及其头像,并为他点赞…
每晚24点,被点赞最多的coder,通过此题…
那么今天,最帅的是你么?
一般点赞这种行为会设计一个验证码…来区别您是普通人还是机器…
我们网站是coder专享的…验证码当然会难一点啦~ 这里的验证码是一个自然数x…他能使 md5(当天日期+你的用户名+当前的票数+x)的前6位都是0…
举例: 假如2015年12月4号食年已经拿到了1014票,当你想投第1015票的时候,你的验证码可以是12011618,因为 “20151204shinian101412011618”的md5值是”0000003A19CF73CF3E9799219A9FFF4F”,这个md5前6位都是0…
题目下面给了一个PHP版的MD5计算,再通过curl(关于curl 可以参考http://blog.csdn.net/yjier/article/details/5666583)来实现。
<?php header('Content-type: text/html; charset=utf-8'); $date="20151015";//当前日期 $name="端着木鱼敲代码";//你支持的帅coder的用户名(大多数情况就是你自己) $vote=1;//当前的票数,别忘了先添加候选人- -。 set_time_limit(0); for($i=0;$i<5000;$i++){ $str=$date.$name.$vote;//php中的.代表字符串拼接 $vote++; for($checkcode=0;;$checkcode++) { $ans=md5($str.$checkcode); if(strpos($ans,"000000")===0) { //echo($checkcode."\n"); //1.初始化,创建一个新cURL资源 $ch = curl_init(); $url="http://www.qlcoder.com/train/handsomerank?_token=mv9Ib8GR4UdYsa5mN8HpINUx6bbyKejVB1GWsYoK&user=".$name."&checkcode=".$checkcode; //设置URL和相应的选项 curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //抓取URL并把它传递给浏览器 curl_exec($ch); //关闭cURL资源,并且释放系统资源 curl_close($ch); echo $url."</br>"; break; } } echo $vote."</br>"; } ?>