投票网站一般而言主要鉴别方式是IP地址,当然也有微信的(openid),微信的方式基本无法刷票,只能通过多个微信号方式。本文以普通的投票网站展开,鉴别ip的方式主要有三种,见如下代码:

public function ip() {//strcasecmp 比较两个字符,不区分大小写。返回0,>0,<0。if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {$ip = getenv('HTTP_CLIENT_IP');} elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {$ip = getenv('HTTP_X_FORWARDED_FOR');} elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {$ip = getenv('REMOTE_ADDR');} elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {$ip = $_SERVER['REMOTE_ADDR'];}$res =  preg_match ( '/[\d\.]{7,15}/', $ip, $matches ) ? $matches [0] : '';echo $res;//dump(phpinfo());//所有PHP配置信息
}

其中HTTP_CLIENT_IP和HTTP_X_FORWARDED_FOR两种方式可以通过伪造http的请求头来达到欺骗的目的,使用chrome和postman和firfox的RestFul插件都可以很容易的实现,这里不再详述。这个投票网站是以第三种的方式,即REMOTE_ADDR的方式,伪造这种方式只能更换访问客户端的IP地址,使用匿名代理进行。

对于匿名代理而言主要涉及三步,获取代理ip,验证代理ip,建立ip池,使用代理方式发起http请求。

1 获取代理ip的获取和验证

这里通过国内免费的匿名代理ip网站获取测试代理。但是经过测试代理的质量一般,基本上只有20%的左右的可用性。建议寻找收费的代理ip,而且提供可靠的api接入方式。

免费代理网站:https://www.kuaidaili.com/free/https://www.xicidaili.com/

代理ip的获取方式很多,但都是大同小异,基本上是通过爬取代理网站的ip然后转存到数据库中,通过另外一个程序对数据中的代理ip进行验证,删除不能正常代理的,筛选出的ip作为后续使用。我使用的是github的python脚本,在这里感谢作者:https://github.com/luzzbob/ProxyPool

2 建立代理ip池

这里的ip池是为后续程序自动请求提供代理,所以代理需要可靠,否则会导致程序刷票的效率很低。这里需要将数据库中筛选的ip以一定格式写入文件中。

import pymysql
def handle_http():conn = pymysql.connect(host='localhost',user='root',passwd='12345678',db='proxypool',port=3306,charset='utf8')cursor = conn.cursor()cursor.execute('select ip,ip_port from proxypool')ip_list = []fp = open("./ip.txt",'w')for row in cursor.fetchall():fp.writelines(row[0]+":"+row[1]+"\n")fp.close()# content = random.choice(ip_list)return ip_listif __name__ == '__main__':handle_http()

3 使用代理发起http请求

#coding:utf-8
import urllib2,urllib,time,socket,random,Proxy_ip,Useragentdef Visitpage(proxyip,url):socket.setdefaulttimeout(6)proxy_support = urllib2.ProxyHandler({'http':proxyip})user_agent = random.choice(Useragent.user_agents)opener = urllib2.build_opener(proxy_support,urllib2.HTTPHandler)urllib2.install_opener(opener)try:request = urllib2.Request(url)print 1+requestrequest.add_header('Referer','http://www.baidu.com')request.add_header('User-Agent',user_agent)html = urllib2.urlopen(request).read()print(html)time.sleep(random.randint(60,180))except urllib2.URLError,e:print 'URLError! The bad proxy is %s' %proxyipexcept urllib2.HTTPError,e:print 'HTTPError! The bad proxy is %s' %proxyipexcept:print 'Unknown Errors! The bad proxy is %s ' %proxyipdef Clicklikebutton(proxyip,url,data):socket.setdefaulttimeout(6)proxy_support = urllib2.ProxyHandler({'http':proxyip})user_agent = random.choice(Useragent.user_agents)opener = urllib2.build_opener(proxy_support,urllib2.HTTPHandler)try:request = urllib2.Request(url)request.add_header('Referer','http://www.baidu.com')request.add_header('User-Agent',user_agent)data = urllib.urlencode(data)resp = opener.open(request, data)print resp.read()time.sleep(random.randint(60,180))except urllib2.URLError,e:print 'URLError! The bad proxy is %s' %proxyipexcept urllib2.HTTPError,e:print 'HTTPError! The bad proxy is %s' %proxyipexcept:print 'Unknown Errors! The bad proxy is %s ' %proxyipdef main():for i in range(len(Proxy_ip.iplist)):proxyip = Proxy_ip.iplist[i]i += 1print proxyipfor m in range(random.randint(2,4)):#Visitpage(proxyip,'http://xxx')         Clicklikebutton(proxyip,'http://152.136.57.219/vote_ip_final/submit2',{'temxx':1})if __name__ == "__main__":main()

代码转自博客https://www.cnblogs.com/dengsm/p/6213998.html

4 验证

经过验证,可以正常完成投票,建议将每次投票的间隔调整好,否则容易被认定非正常投票。

对某投票网站的刷票方式相关推荐

  1. 投票刷票 php,关于PHP写的投票网站之刷票终结版_PHP教程

    继上篇刷票风云的随笔之后,我还是决定用每个学生登录教务处的密码尝试一下,虽然这个我在开学的时候做微信开发的时候弄过. 首先要做的是登录学校教务处网站,然后打开 =('./temp','cookie'= ...

  2. WAP网站的推广方式(自整合篇)

    WAP网站推广随着无线互联时代的到来,已经日益受到大家的重视.虽然WAP网站的目前盈利模式还不是很清晰,但WAP网站推广的竞争强度将肯定会越来越激烈,下面和大家一起探讨下WAP网站的推广方法. 方法/ ...

  3. HTML加入IP限制代码,利用HTML实现限制ip的投票网站作弊方案

    提要:如果大家有任何疑问请给我留言,小编会及时回复大家的.在此也非常感谢大家对素材圈的支持!若你觉得本文对你有帮助,欢迎,烦请注明出处,谢谢! 不少人想了解关于利用HTML实现限制ip的投票网站作弊方 ...

  4. java hincrby_使用Redis构建文章投票网站(Java)

    文章投票网站的redis相关Java实现 需求: 1.要构建一个文章投票网站,文章需要在一天内至少获得200张票,才能优先显示在当天文章列表前列. 2.但是为了避免发布时间较久的文章由于累计的票数较多 ...

  5. 织梦网站后台-织梦网站后台登陆方式-织梦CMS模板

    织梦网站后台登陆方式:域名/dede即可进入网站后台.织梦cms是一个独立的网站程序.今天给大家推荐的是织梦cms模板(内置5W套织梦cms模板)以及免费织梦cms插件其中包括有:织梦cms采集插件. ...

  6. python钉钉扫码登录程序_钉钉扫码登录网站(两种方式实现)

    钉钉扫码登录网站(两种方式实现) 效果: 动手敲代码! 第一步,钉钉后台配置 点击进入钉钉开发者平台 的页面,点击左侧菜单的[移动接入应用-登录],然后点击右上角的[创建扫码登录应用授权],创建用于免 ...

  7. 教大家微信里投票的怎么刷票及微信投票怎么免费刷票攻略

    教大家微信里投票的怎么刷票及微信投票怎么免费刷票攻略,越来越多的人在平常生活中使用微信,以微信为载体的许多功能就被开发和使用了起来,比如--微信投票.于是乎,微信上兴起了各种投票,从小学生到gov部门 ...

  8. 3种查看网站流量的方式

    这里我介绍3种查看别人网站流量的方式,可以帮助我们从侧面了解到竞争对手站点的表现情况.(原文参考) 1.alexa.com alexa世界排名,这个是很多朋友常用的参考数据,也是目前相对较权威的.很多 ...

  9. 4个查询网站收录的方式,你中意哪个查询方式呢?

    查询网站是否被收录的方式有几个?     4个:site命令.第三方工具.百度站长平台查询.利用接口批量查询.     接下来我们就来介绍这4个查询网站收录的方式:     第一个:site命令   ...

最新文章

  1. 目的:使用CUDA环境变量CUDA_VISIBLE_DEVICES来限定CUDA程序所能使用的GPU
  2. windows美化工具7+ Taskbar Tweaker
  3. 文巾解题1738. 找出第 K 大的异或坐标值
  4. excel 平滑滚动_Excel怎么学 | 图表实战,销售数据的不同表达方式
  5. 关于F5 排错的简单介绍之一
  6. python--字符/文本编码解码笔记
  7. atitit. 分销系统规划p8k
  8. [转]struct 和typedef struct什么区别
  9. 基于Python的DELMIA二次开发(三):人体建模
  10. Windows下如何打开CSV文件
  11. python 实现盒滤波boxfilter
  12. 【Watir Webdriver】自动化上传照片到百度相册
  13. charles 修改responses属性
  14. 校园网多拨网速叠加思路
  15. 金属非金属如何去毛刺 机器人浮动去毛刺
  16. 互联网晚报 | 三星超过苹果成手机市场份额第一;特斯拉回应中国内地市场降价传闻;ChatGPT或会暴露企业机密信息...
  17. 华为又走在美国芯片企业前面,将率先发布5nm工艺芯片
  18. 强袭自由高达,我的第一个作品
  19. 微信小程序 图片等比例缩-放(图片自适应屏幕)
  20. 机器学习数据划分笔记(train_test_split)

热门文章

  1. Python raise用法
  2. 百度AI手写诗文字识别使用攻略
  3. CountDownTimer用法详解
  4. ideviceinstaller常用命令
  5. Family Album U.S.A
  6. 100 Books to Read in a Lifetime 附带亚马逊购买链接
  7. 转正报告不会写?资深软件测试工程师手把手教学,赶紧收藏
  8. 逆天了!能控制电脑还能和你聊天的机器人?
  9. 上线 B 站,钢铁侠出镜 AI 科普纪录片!
  10. SpringBoot系列3-----Docker SpringBoot与数据访问 启动原理 自定义starters