这几天闲着没事,用PHP的fsockopen写了几个文件为我的酷我音乐盒的帐户加分。
获得途径 积分
音乐盒
完整的听一首歌曲 1(每天最高200)
音乐坊
成功上传一张歌单 50(每天最高200)
酷我音乐空间
空间被访问1次 1(每天最高50)
有人打招呼1次 2(每天最高50)
有人留言(非主人) 5(每天最高50)
其他来源
注册 500
填写邮箱信息 100(只限一次)
想增加分数的途径有上面几个,听200首音乐每天可以实现,一天到晚都开着酷我音乐盒。
然后就是访问我的空间、打招呼、留言、上传歌单,要是能写个程序每天自动跑,不用每天自己去点击,那多好。
于是就开始分析,用我的音乐空间做例子:[url]http://jackywdx.kzone.koowo.com/mlog/index.htm&m=y[/url]
这是我的音乐空间地址,我注册了一个马甲然后去访问我的空间,每刷新一次访问量就加1,要分析网络交互还得借助一些工具,比如httpwatch,火狐下面有httpfox,都可以用来监测网络数据的。我用的是HTTPWATCH,在IE下,开启HTTPWATCH的监测功能,打开上面的链接地址,回车后就有数据出来,如下图:
认真分析一下可以知道是这个地址:[url]http://jackywdx.kzone.koowo.com/mlog/st/SendView[/url]在触发更新。
发送的HTTP头信息可以直接从HTTPWATCH下面的stream标签下面的内容获取到,直接全部复制出来就行。
写了下面的一份代码:
然后保存成一个文件koowo_view.php,在浏览器里面执行一下:http://localhost/koowo_view.php,然后去我的首页看看,访问量增加了1,觉得不明显可以多刷新几遍再去看看。哈哈,成功,于是继续分析打招呼、留言、上传歌单的入口地址,然后再写上相应的程序koowo_doPoke.php,koowo_leave_message.php,koowo_upload_song.php,这样4个程序都写完了,经过测试成功,还要让这4个程序定时的执行,由于增加的分数都有上限,比如访问量最多可以增加50分,那我就让他跑50次,留言最多可以增加50分,每次留言可以增加5分那就跑10次。最后写个脚本来处理这些逻辑,写脚本我选择了用shell,其实用PHP也可以写,只是顺便锻炼一下写shell的能力。。
#!/bin/bash
#执行浏览页面
function do_view_koowo(){
#view_num.txt用来存储执行的次数,
view_num=$(cat /opt/koowo/view_num.txt);
#循环执行50遍
while [ $view_num -le 50 ]
do
/opt/lampp/bin/php /opt/koowo/php/koowo_view.php >/dev/null 2>&1
#echo “done n” >> koowo_log
let view_num=$view_num+1;
echo $view_num > /opt/koowo/recordFile/view_num.txt
#暂停2秒,也不能跑得太快。
sleep 2
done
#执行完之后再把浏览次数置为1供下次使用
if [ $view_num -ge 50 ]
then
echo 1 > /opt/koowo/recordFile/view_num.txt
fi
}
#执行打招呼功能
function do_poke(){
poke_num=$(cat /opt/koowo/recordFile/poke_num.txt)
while [ $poke_num -le 26 ]
do
sleep 20
/opt/lampp/bin/php /opt/koowo/php/koowo_doPoke.php >/dev/null 2>&1
let poke_num=$poke_num+1
echo $poke_num > /opt/koowo/recordFile/poke_num.txt
echo “sleeping…”
done
if [ $poke_num -gt 25 ]
then
echo 1 > /opt/koowo/recordFile/poke_num.txt
fi
}
#执行留言功能
function do_leave_message(){
message_num=$(cat /opt/koowo/recordFile/message_num.txt)
while [ $message_num -le 11 ]
do
/opt/lampp/bin/php /opt/koowo/php/koowo_leave_message.php >/dev/null 2>&1
let message_num=$message_num+1
echo $message_num > /opt/koowo/recordFile/message_num.txt
sleep 30
echo “sleep…”
done
if [ $message_num -gt 10 ]
then
echo 1 > /opt/koowo/recordFile/message_num.txt
fi
}
#执行上传歌单功能
function do_upload_song(){
upload_num=$(cat /opt/koowo/recordFile/upload_num.txt)
while [ $upload_num -le 4 ]
do
/opt/lampp/bin/php /opt/koowo/php/koowo_upload.php >/dev/null 2>&1
let upload_num=$upload_num+1
echo $upload_num > /opt/koowo/recordFile/upload_num.txt
sleep 30
done
if [ $upload_num -gt 3 ]
then
echo 1 > /opt/koowo/recordFile/upload_num.txt
fi
}
#执行上面四个函数
do_view_koowo
do_poke
do_leave_message
do_upload_song
exit 1
上面写了一个脚本,名字叫做run_cron.sh,怎么让他每天执行呢,哈哈,用cron程序。。。
crontab -e进入编辑页面
01 10 * * * /bin/bash /opt/koowo/run_cron.sh 2>&1 > /dev/null
写上这么一句,退出。那就会在每天早上的10点1分去执行这个脚本了。。
如果想知道这个程序跑了没有,那就去查一下那个log文件就行了。
原文:[url]http://jackywdx.cn/2008/12/%E5%B7%A7%E7%94%A8php%E7%9A%84fsockopen%E5%87%BD%E6%95%B0/#comment-55[/url]