年关了,抛一个模拟ip刷票的php程序
2014-01-15 09:34
330 查看
<?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程序代码
- php程序模拟一个栈
- 一个图形显示IP的PHP程序代码
- PHP中使用curl及代理IP模拟post提交【两种实用方法】
- 如何实现用Java编写程序,设计一个模拟电梯运行的类
- HR--一个奖金模拟试算的程序,仅供参考
- 一个字符串IP分割的处理小程序
- 分享一个PHP抽奖算法程序代码
- 一个PHP的分页程序
- 一个模拟金山毒霸等软件查毒过程的小程序
- 转发一个PHP抓取网页快照程序
- Java LinkedList特有方法程序小解 && 使用LinkedList 模拟一个堆栈或者队列数据结构。
- 获得当前计算机全部IP的一个java小程序
- 自己写了一个类似百度空间自动保存草稿的程序 php+jquery
- php中存储IP的一个不错的方法
- php中存储IP的一个不错的方法
- php中存储IP的一个不错的方法
- php中存储IP的一个不错的方法
- php中存储IP的一个不错的方法
- 如何使用TCP/IP与服务器进行通信-一个简单的聊天程序