前言
前段时间,贪吃蛇大作战这款有毒的小游戏凭借着新奇的界面和极易上手的特点瞬间火爆起来。我也随波逐流玩了一下,真的会中毒。除了游戏本身,还有一个页面吸引了我。皮肤~~
其中岩石皮肤成功地引起了我的注意,勾起了我童年的回忆。突然之间,好想拥有它...
但是默认情况下,玩家的金币是不够的。就目前而言,金币的来源只能是分享游戏,从不同IP点击中获取。但是我又不想麻烦朋友们一个一个点击。于是我走上一条探索如何利用旁门左道方式来获取金币的道路。不出意外,略有收获,果断分享一下。
姿势一,买服务
互联网时代,需要买乱七八糟服务的时候,大家都知道首选某宝,果不其然。
基本上一个大洋就能享受上帝的身份。
姿势二,代码实现
1,修改X-Forwarded-For和UA
大概原理:当HTTP头有XFF这个字段时,服务器端一般会从它那里获取客户端IP。修改UA,是因为这游戏本身就只能在移动端上面玩,PC端点击链接是无效的(这坑好深!差点爬不上来)。下面直接上代码(PHP),主要是运用LIBCRUL 这个库。
<?php
function getCoin($url){
//random ip
$ip1 = rand(101, 255).'.';
$ip2 = rand(1, 255).'.';
$ip3 = rand(1, 255).'.';
$ip4 = rand(1, 255);
$ip = $ip1 . $ip2 . $ip3 . $ip4;
//init curl
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT,30);
$xforwarded = 'X-FORWARDED-FOR:'.$ip;
//fake header importance!
$header = array(
$xforwarded,
"User-Agent:Mozilla/5.0
(Linux; U; Android 4.4.4; Nexus 5 Build/KTU84P) AppleWebkit/534.30
(KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",
);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
//execute...
$content = curl_exec ($ch);
curl_close($ch);
}
2,代理访问
代理资源是我从网上抓取下来的,免费的,稳定性比较差。其中抓取IP需要的两个类库在这里下载。
include "LIB_http.php";
include "LIB_parse.php";
function get_ip($i){
$arr = http_get("http://www.kuaidaili.com/free/inha/".$i.'/',"www.kuaidaili.com");
$arr_ip = parse_array($arr['FILE'],'< td data-title="IP" >','< /td >');
$arr_port = parse_array($arr['FILE'],'< td data-title="PORT" >','\< /td >');
foreach ($arr_port as $key => $value) {
$arr_port[$key] = return_between($value,'< td data-title="PORT" >','< /td >',EXCL);
}
$fp = fopen('test.txt','a+');
foreach ($arr_ip as $key => $value) {
$arr_ip[$key] = return_between($value,'< td data-title="IP" >','< /td >',EXCL).':'.$arr_port[$key];
fwrite($fp,$arr_ip[$key]."\r\n");
}
unset($arr);
unset($arr_ip);
unset($arr_port);
fclose($fp);
}
if(file_exists("test.txt")){
unlink("test.txt");
}
for($i = 1; $i<8; $i++){
get_ip($i);
}
echo "finish!!check the test.txt in current directory";
下面是使用代理访问链接的代码实现
function mycurl($url,$proxy,$xip){
$ch = curl_init();
curl_setopt($ch, CURLOPT_PROXY, $xip);
curl_setopt($ch, CURLOPT_PROXYPORT, $proxy);
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt
($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Linux; U; Android 4.4.4; Nexus 5
Build/KTU84P) AppleWebkit/534.30 (KHTML, like Gecko) Version/4.0 Mobile
Safari/534.30");
curl_setopt($ch, CURLOPT_HEADER, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt ($ch, CURLOPT_TIMEOUT, 3);
$head = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
return $httpCode;
}
$myfile = fopen('test.txt','r');
$url = "http://snakeapi1.xLpcy.com/s/0B7wp-da360";
while(!feof($myfile)) {
$socket = fgets($myfile);
$arr = explode(":", $socket);
$proxy = "http://".$socket;
//echo mycurl($url,$arr[1],$arr[0])."br";
}
fclose($myfile);
3,强行使用接口
这个主要是调用其他人写好的页面,模拟浏览器的post表单提交。由于下面测试的服务器端做了IP限制,所以也可以应用前面修改XFF的思路。下面给出核心函数
function getCoin($url){
$ip1 = rand(101, 255).'.';
$ip2 = rand(1, 255).'.';
$ip3 = rand(1, 255).'.';
$ip4 = rand(1, 255);
$ip = $ip1 . $ip2 . $ip3 . $ip4;
$data = array('type' =>'1','url' => $url);
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, array("X-FORWARDED-FOR:$ip"));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_URL,"http://sheshe520.com/index.php?a=api_qiuqiu");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$response = curl_exec($ch);
curl_close($ch);
}
三,其他姿势
除了以上方法,还有其他姿势,时间有限,故给出思路。其实中心思想没变化:利用不同IP点击你的链接,符合它本身的业务逻辑。1,例如流量宝,流量精灵这些卖流量的网站也能满足这次的需求,详细找度;2,可以利用shell脚本自动到达切换vpn的方式来达到目标。
四,结语
学以致用。