千里码网站题目难度曲线比较陡,但是肯花时间去研究,提升还是相当快的。
今天的题目是刷票。
题目如下:
任何一个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>";
}
?>