模拟易名中国域名的点赞
易名中国的域名有点赞功能,点赞数高可以被推荐,但只能点一次,那么需求就来了
方法一: ajax请求
与源代码的js类似,需要注意的是跨域问题, 因为请求的二级域名是www
,所以也要在www
主机页面的控制台(console
)里跑,否则会返回非法请求
var praise = 0, num = 123456; // num为你域名页面的id,在浏览器的url中可以直观看到
var _this = $('#praise');
var url = "http://www.ename.com/auction/praise"+'/' + num + '/' + praise;
// 这是它页面的源代码
$.ajax({
url:url,
type:'get',
dataType:'json',
success:function(data) {
switch(data.flag) {
case 1:
_this.find('.praise_amount').html("("+data.count+")");
var html = '<div class="dz_tip"><span class="outsideb"></span><span class="insideb"></span>点赞成功</div>';
_this.find('.praise_r').after(html);
$('.dz_tip').stop().fadeOut(2000, function() {
$(this).remove();
})
praise = data.praise;
break;
case 2:
default:
alert(data.msg);
}
}
});
- 问题: 由于它服务端有对ip的判断,所以这代码只能用一次,而且不利于在linux服务器上跑脚本,所以替换方案来了
方法二: curl模拟
<?php
header('Content-Type: text/html; charset=utf-8');
// $num为你页面域名的id,可以在浏览器的url中直观看到
function run($num, $second = 30){
$url = "http://www.ename.com/auction/praise/$num";
$headers['CLIENT-IP'] = '202.103.229.46';
$headers['X-FORWARDED-FOR'] = '202.103.229.46';
$headers['X-Requested-With'] = 'XMLHttpRequest'; // 重要
// X-Requested-With:XMLHttpRequest
$headerArr = array();
foreach( $headers as $n => $v ) {
$headerArr[] = $n .':' . $v;
}
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url.'/0');
curl_setopt ($ch, CURLOPT_HEADER, 1);
curl_setopt ($ch, CURLOPT_HTTPHEADER , $headerArr ); //构造IP
// curl_setopt ($ch, CURLOPT_REFERER, $url); //构造来路
$content = curl_exec($ch);
curl_close($ch);
return $content;
}
$res = run(123456);
- 可以再对其优化下,加个循环把
ip
随机, 再加个sleep
停顿下,再在header中中随机个UA
模拟下更像 - 返回结果如下就成功了
{"flag":1,"msg":"\u70b9\u8d5e\u6210\u529f","count":48,"praise":1}
再次提醒慎用,导致域名被封了概不负责
- 上一篇: 检测MySQL是否宕机并重启
- 下一篇: PHP的DES加密和RSA签名(兼容java)