干货知识:简易的刷票系统软件(提升IP限定开展投票)
一、序言
坚信大伙儿平常毫无疑问会接到盆友发过来的连接,开启一看,哦,必须投票。投完票后弹出来一个网页页面(恭贺您,您早已投票取得成功),再度点一下的情况下发觉,哈啊,您的IP(***.***.***.***)早已投过票了,不可以反复投票。此刻,大家很有可能会想,是否可以使提升ip详细地址的限定开展刷票呢?拥有那样的念头,那就要做吧,下边我将详细介绍我这个简易的刷票系统软件,仅作有要求的园友们参照。
二、控制系统设计
系统软件关键完成的是提升IP限定开展刷票,在其中,由IP收集控制模块承担从互联网技术往上爬取代理商IP,放进阻塞队列,该每日任务会按时实行。以后由投票控制模块从阻塞队列中获得IP,并开展设定,随后开展投票。系统流程图以下:
三、系统软件技术性
系统软件应用HttpClient JSoup 线程同步来进行刷票,HttpClient用以开展投票,JSoup用以分析网页页面,线程进程用以分离出来每日任务,促使职责分工更为确立。应用来到经营者顾客方式,该方式立即应用BlockingQueue来完成。
四、系统软件详细介绍
系统软件关键分成三个控制模块:
① IP收集控制模块
② 投票控制模块
③ IP信息内容控制模块
在其中,IP收集控制模块关键是以互联网技术抓取IP代理商信息内容,并将该信息内容放进阻塞队列,那样就可以仿冒IP,开展数次投票。
在其中,投票控制模块从IP收集控制模块放进阻塞队列取下IP信息内容,并设置代理,寻找投票通道详细地址,随后开展投票实际操作。
在其中,IP信息内容控制模块主要是对抓取的IP信息内容开展了封裝,便捷别的控制模块开展实际操作。
4.1 IP收集控制模块
IP收集控制模块流程表以下
几个方面表明:
1.系统软件应用的代理商IP网站URL为http://www.kuaidaili.com/,www.xicidaili.com。
2.获取IP信息内容为获取一条IP信息内容,并分辨历史时间IP表是不是早已存有,若存有活动投票报名软件,表明以前早已添加过此IP信息内容,则立即丢掉,相反,则添加序列并添加历史时间IP表。
3.此每日任务会按时打开活动投票报名软件,如一个小时抓取一次代理商IP。
4.2 投票控制模块
投票控制模块流程表以下
几个方面表明:
1.投票网址http://www.hnxdf.com/vote/活动投票报名软件,大家选择的第一位开展投票,剖析出投票的通道为http://www.hnxdf.com/vote/iRadio_vote.asp?VoTeid=215。
2.依据IP收集控制模块放进序列的IP信息内容开展设定,随后开展投票。
4.3 IP信息内容控制模块
此控制模块关键对从网址抓取的IP信息内容开展了封裝,便捷别的控制模块开展实际操作。
五、系统软件编码架构
系统软件的全部编码架构以下
在其中,bean包的IpInfo封裝了抓取的IP信息内容。
在其中,entrance包的Vote为系统软件的通道。
在其中,thread包的IPCollectTask为抓取代理商IP每日任务,VoteThread为开展投票进程。
六、系统软件编码
1.IpInfo.java
package com.hust.grid.leesf.bean;public class IpInfo { public IpInfo(String ipAddress, int port, String location, String anonymousType, String type, String confirmTime) { this(ipAddress, port, location, anonymousType, type, confirmTime, null, null); } public IpInfo(String ipAddress, int port, String location, String anonymousType, String type, String confirmTime, String getPostSupport, String responseSpeed) { this.ipAddress = ipAddress; this.port = port; this.location = location; this.anonymousType = anonymousType; this.type = type; this.confirmTime = confirmTime; this.getPostSupport = getPostSupport; this.responseSpeed = responseSpeed; } public String getIpAddress() { return ipAddress; } public void setIpAddress(String ipAddress) { this.ipAddress = ipAddress; } public int getPort() { return port; } public void setPort(int port) { this.port = port; } public String getLocation() { return location; } public void setLocation(String location) { this.location = location; } public String getAnonymousType() { return anonymousType; } public void setAnonymousType(String anonymousType) { this.anonymousType = anonymousType; } public String getType() { return type; } public void setType(String type) { this.type = type; } public String getConfirmTime() { return confirmTime; } public void setConfirmTime(String confirmTime) { this.confirmTime = confirmTime; } public String getGetPostSupport() { return getPostSupport; } public void setGetPostSupport(String getPostSupport) { this.getPostSupport = getPostSupport; } public String getResponseSpeed() { return responseSpeed; } public void setResponseSpeed(String responseSpeed) { this.responseSpeed = responseSpeed; } @Override public boolean equals(Object anthor) { if (this == anthor) { return true; } if (anthor == null || getClass() != anthor.getClass()) { return false; } IpInfo ipInfo = (IpInfo) anthor; return (this.ipAddress.equals(ipInfo.ipAddress) && this.port == ipInfo.port && this.location.equals(ipInfo.location) && this.anonymousType.equals(ipInfo.anonymousType) && this.type.equals(ipInfo.type) && this.confirmTime .equals(ipInfo.confirmTime)) && this.getPostSupport.equals(ipInfo.getPostSupport) && this.responseSpeed.equals(ipInfo.responseSpeed); } @Override public int hashCode() { int hash = 5; hash = 89 * hash (this.ipAddress != null ? this.ipAddress.hashCode() : 0); hash = 89 * hash this.port; hash = 89 * hash (this.location != null ? this.location.hashCode() : 0); hash = 89 * hash (this.anonymousType != null ? this.anonymousType.hashCode() : 0); hash = 89 * hash (this.type != null ? this.type.hashCode() : 0); hash = 89 * hash (this.confirmTime != null ? this.confirmTime.hashCode() : 0); hash = 89 * hash (this.getPostSupport != null ? this.getPostSupport.hashCode() : 0); hash = 89 * hash (this.responseSpeed != null ? this.responseSpeed.hashCode() : 0); return hash; } @Override public String toString() { return "ipAddress = " ipAddress
热门资讯
- 1投票群微信投票服务平台
- 2互投qq名片点赞群 投票群 关注群 升级啦!完全免费投票关注群!
- 3邮递投票了 2020年洛县投票站看不到要排很长的队
- 4明星权力榜投票通道(为喜爱的大牌明星进行投票)
- 5第三方投票服务平台投票如何确定同一时间范围很多同地址不一样的ip的投票是
- 6【投票】赶紧来为桑植县扶贫攻坚最美丽一瞬间小视频投票
- 7微信微信公众号如何开展比较繁杂的投票?
- 8快手视频国有独资回收投票社交媒体类手机软件“虾脑APP”
- 9腾讯官方调节明星赛投票标准,要想阻拦刷票个人行为,却出現更高的系统漏洞
- 10企业年会要用,有什么功能强大的投票专用工具,最好微信的?
- 11抖音短视频免费去水印软件资源,一键分析视频加水印,褔利速领!
- 12投票安全通道打开
- 13PCS3投票截至提示:明日中午五点截至投票
- 14投票群关注拉票互帮互助群(人工投票精英团队)
- 15bilibili发布TGA 2020投票页,游戏玩家投票将记入总评比
- 16如何选择安全性功能强大的微信投票系统软件?