模拟易名中国域名的点赞

易名中国的域名有点赞功能,点赞数高可以被推荐,但只能点一次,那么需求就来了

ename.jpg

方法一: 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}

再次提醒慎用,导致域名被封了概不负责

标签: curl