首页 >php教程 >php手册 >年关了,抛一个模拟ip刷票的php程序

年关了,抛一个模拟ip刷票的php程序

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

 

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

 

 

如何防范该类刷票行为:

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

<span style="color: #800080;">$ip</span> = <span style="color: #008080;">getenv</span>('REMOTE_ADDR');

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

 

 

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn