<?php
$ip = $_GET['ip'] ? $_GET['ip'] : '1.1.1.1';
$ipArr = explode(".", $ip);
$ipArr[3] = $ipArr[3] + 1;
if ( $ipArr[3] > 254 )
{
$ipArr[3] = 1;
$ipArr[2] = $ipArr[2] + 1;
}
if ( $ipArr[2] > 254 )
{
$ipArr[2] = 1;
$ipArr[1] = $ipArr[1] + 1;
}
if ( $ipArr[1] > 254 )
{
$ipArr[1] = 1;
$ipArr[0] = $ipArr[0] + 1;
}
if ( $ipArr[0] > 254 )
{
exit();
}
$ip = implode(".", $ipArr);
// 此处设置投票的id
$post_data = 'vid=8'; // 投票的地址
$url = 'http://www.xxx.com/api.php?m=vote&a=voteto';
$user_agent = "Mozilla/4.0"; $headers['CLIENT-IP'] = $ip;
$headers['X-FORWARDED-FOR'] = $ip; $headerArr = array();
foreach ( $headers as $n => $v )
{
$headerArr[] = $n . ':' . $v;
} $ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HTTPHEADER, $headerArr); // 构造IP
curl_setopt($ch, CURLOPT_REFERER, "http://www.baidu.com/ "); // 构造来路
curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); ob_start();
curl_exec($ch);
$result = ob_get_contents();
ob_end_clean(); echo $result;
echo '<meta http-equiv="refresh" content="1;url=http://localhost/phpk/post.php?ip=' . $ip . '"> ';
?>

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

如何防范该类刷票行为:

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

$ip = getenv('REMOTE_ADDR');

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

年关了,抛一个模拟ip刷票的php程序的更多相关文章

  1. 一个模拟时钟的时间选择器 ClockPicker

    最近开发的一个模拟时钟的时间选择器 ClockPicker,用于 Bootstrap,或者单独作为一个 jQuery 插件. 源代码托管在 GitHub 上: ClockPicker 最近项目中需要用 ...

  2. 使用curl模拟ip和来源进行网站采集的实现方法

    对于限制了ip和来源的网站,使用正常的采集方式是不行的.本文将介绍一种方法,使用php的curl类实现模拟ip和来源,实现采集限制ip和来源的网站. 1.设置页面限制ip和来源访问 server.ph ...

  3. 判断一个字符串是不是一个合法的IP地址

    最近在笔试的时候遇到碰一道算法题, 要求判断一个字符串是不是合法的ip地址. 将我的思路发出来分享一下,不一定正确,也不一定是最优的方法.希望能分享一些交流 要求用java或者c来实现,我的java代 ...

  4. curl模拟ip和来源进行网站采集的实现方法

    对于限制了ip和来源的网站,使用正常的采集方式是不行的.这里说我的一种方法吧,使用php的curl类实现模拟ip和来源,可以实现采集限制ip和来源的网站. 1.设置页面限制ip和来源访问比如服务端的s ...

  5. 请求一个域名ip的缓存用处

    前言 摘录自操作系统,这一段的内容很有启发,稍微加上自己的理解,写一篇博客记录一下. 缓存 缓存成功解决了速度不匹配设备之间的数据传输,并且在一般情况下,是整个系统的瓶颈:缓存的出现,有效减少了低速I ...

  6. PHP curl模拟ip和来源进行访问

    PHP curl模拟ip和来源进行访问<pre> public function moniurlqingqiu() { $ch = curl_init(); $curlurl = &quo ...

  7. 使用不同代理IP刷票的脚本---requests

    投票功能限制刷票是通过限制单个IP的投票次数实现的,所以写了个脚本用于测试此功能. #-*- coding=utf-8 -*- ''' 功能:此脚本用于用不同的IP刷票 作者:Elle 最后修改日期: ...

  8. 【Android初级】如何实现一个“模拟后台下载”的加载效果(附源码)

    在Android里面,后台的任务下载功能是非常常用的,比如在APP Store里面下载应用,下载应用时,需要跟用户进行交互,告诉用户当前正在下载以及下载完成等. 今天我将通过使用Android的原生控 ...

  9. 搭建QQ聊天通信的程序:(1)基于 networkcomms.net 创建一个WPF聊天客户端服务器应用程序 (1)

    搭建QQ聊天通信的程序:(1)基于 networkcomms.net 创建一个WPF聊天客户端服务器应用程序 原文地址(英文):http://www.networkcomms.net/creating ...

随机推荐

  1. BZOJ 4025 二分图(时间树+并查集)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=4025 [题目大意] 给出一张图,有些边只存在一段时间,问在一个每个时间段, 这张图是否 ...

  2. HDU 6035 Colorful Tree(补集思想+树形DP)

    [题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=6035 [题目大意] 给出一颗树,一条路径的价值为其上点权的种类数,求路径总价值 [题解] 单独考虑 ...

  3. 【矩阵乘法】CDOJ1610 黑红梅方

    考虑用4^n-不存在连续4个相同的. f(i,j,k,l)表示以i为结尾的序列,最后三位分别是j,k,l时的方案. 可以转移,写一个64*64的转移矩阵. 貌似可以优化?……未完待续. #includ ...

  4. JVM堆 栈 方法区详解

    一.栈 每当启用一个线程时,JVM就为他分配一个JAVA栈,栈是以帧为单位保存当前线程的运行状态 栈是由栈帧组成,每当线程调用一个java方法时,JVM就会在该线程对应的栈中压入一个帧 只有在调用一个 ...

  5. [转]Servlet的load-on-startup

      在servlet的配置当中,<load-on-startup>5</load-on-startup>的含义是: 标记容器是否在启动的时候就加载这个servlet. 当值为0 ...

  6. [转] SSH配置之web.xml

    在项目中总会遇到一些关于加载的优先级问题, 首先可以肯定的是,加载顺序与它们在 web.xml 文件中的先后顺序无关.即不会因为 filter 写在 listener 的前面而会先加载 filter. ...

  7. (Mark)操作系统原理

    Q:什么是中断?A:中断嘛,举个容易理解的例子吧.   比如莲莲和唐唐在下象棋,眼看莲莲就快招架不住了,正当此紧要关头,唐唐的女友来了,非要唐唐陪她上街买衣服不可(唐唐晕倒:-) ),于是唐唐不得不同 ...

  8. Word中公式从单栏排版变为双栏排版后公式和编号错开了

    如上图公式(2),把自己做的共识从通栏复制到期刊的双栏里就变成这样了(先复制过来参考文献,再复制正文,那么参考文献没事),原来一直搞不懂,今天把它显示所有标记发现多了个制表符(我原来以为是行标记),鼠 ...

  9. python修改和获取进程名字:setproctitle

    参考: https://pypi.org/project/setproctitle/

  10. 使用nsswitch控制linux dns解析顺序

    参考:1.DNS原理入门参考:http://www.ruanyifeng.com/blog/2016/06/dns.html 2.http://cn.linux.vbird.org/linux_ser ...