对某投票网站的刷票方式
投票网站一般而言主要鉴别方式是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 验证
经过验证,可以正常完成投票,建议将每次投票的间隔调整好,否则容易被认定非正常投票。
对某投票网站的刷票方式相关推荐
- 投票刷票 php,关于PHP写的投票网站之刷票终结版_PHP教程
继上篇刷票风云的随笔之后,我还是决定用每个学生登录教务处的密码尝试一下,虽然这个我在开学的时候做微信开发的时候弄过. 首先要做的是登录学校教务处网站,然后打开 =('./temp','cookie'= ...
- WAP网站的推广方式(自整合篇)
WAP网站推广随着无线互联时代的到来,已经日益受到大家的重视.虽然WAP网站的目前盈利模式还不是很清晰,但WAP网站推广的竞争强度将肯定会越来越激烈,下面和大家一起探讨下WAP网站的推广方法. 方法/ ...
- HTML加入IP限制代码,利用HTML实现限制ip的投票网站作弊方案
提要:如果大家有任何疑问请给我留言,小编会及时回复大家的.在此也非常感谢大家对素材圈的支持!若你觉得本文对你有帮助,欢迎,烦请注明出处,谢谢! 不少人想了解关于利用HTML实现限制ip的投票网站作弊方 ...
- java hincrby_使用Redis构建文章投票网站(Java)
文章投票网站的redis相关Java实现 需求: 1.要构建一个文章投票网站,文章需要在一天内至少获得200张票,才能优先显示在当天文章列表前列. 2.但是为了避免发布时间较久的文章由于累计的票数较多 ...
- 织梦网站后台-织梦网站后台登陆方式-织梦CMS模板
织梦网站后台登陆方式:域名/dede即可进入网站后台.织梦cms是一个独立的网站程序.今天给大家推荐的是织梦cms模板(内置5W套织梦cms模板)以及免费织梦cms插件其中包括有:织梦cms采集插件. ...
- python钉钉扫码登录程序_钉钉扫码登录网站(两种方式实现)
钉钉扫码登录网站(两种方式实现) 效果: 动手敲代码! 第一步,钉钉后台配置 点击进入钉钉开发者平台 的页面,点击左侧菜单的[移动接入应用-登录],然后点击右上角的[创建扫码登录应用授权],创建用于免 ...
- 教大家微信里投票的怎么刷票及微信投票怎么免费刷票攻略
教大家微信里投票的怎么刷票及微信投票怎么免费刷票攻略,越来越多的人在平常生活中使用微信,以微信为载体的许多功能就被开发和使用了起来,比如--微信投票.于是乎,微信上兴起了各种投票,从小学生到gov部门 ...
- 3种查看网站流量的方式
这里我介绍3种查看别人网站流量的方式,可以帮助我们从侧面了解到竞争对手站点的表现情况.(原文参考) 1.alexa.com alexa世界排名,这个是很多朋友常用的参考数据,也是目前相对较权威的.很多 ...
- 4个查询网站收录的方式,你中意哪个查询方式呢?
查询网站是否被收录的方式有几个? 4个:site命令.第三方工具.百度站长平台查询.利用接口批量查询. 接下来我们就来介绍这4个查询网站收录的方式: 第一个:site命令 ...
最新文章
- 目的:使用CUDA环境变量CUDA_VISIBLE_DEVICES来限定CUDA程序所能使用的GPU
- windows美化工具7+ Taskbar Tweaker
- 文巾解题1738. 找出第 K 大的异或坐标值
- excel 平滑滚动_Excel怎么学 | 图表实战,销售数据的不同表达方式
- 关于F5 排错的简单介绍之一
- python--字符/文本编码解码笔记
- atitit. 分销系统规划p8k
- [转]struct 和typedef struct什么区别
- 基于Python的DELMIA二次开发(三):人体建模
- Windows下如何打开CSV文件
- python 实现盒滤波boxfilter
- 【Watir Webdriver】自动化上传照片到百度相册
- charles 修改responses属性
- 校园网多拨网速叠加思路
- 金属非金属如何去毛刺 机器人浮动去毛刺
- 互联网晚报 | 三星超过苹果成手机市场份额第一;特斯拉回应中国内地市场降价传闻;ChatGPT或会暴露企业机密信息...
- 华为又走在美国芯片企业前面,将率先发布5nm工艺芯片
- 强袭自由高达,我的第一个作品
- 微信小程序 图片等比例缩-放(图片自适应屏幕)
- 机器学习数据划分笔记(train_test_split)