您的位置:首页 > 新闻资讯 >文章内容
使用代理IP制作刷票系统(中)
来源:互联网 作者:admin 时间:2019-09-25 10:53:02

  使用代理IP制作刷票系统(上)文章里面已经将系统的框架介绍完毕了,剩下的就是重头戏,代码部分了。由于代码部分的篇幅占据比较长,为了优化大家的阅读,机灵代理会划分为两个部分,这样大家就不用一下子受到大段大段代码的冲击了。好了,立马进入正题,看看代理IP是怎么在系统中起作用的吧。


使用代理IP制作刷票系统


  5、系统代码


  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 + ", port = " + port + ", localtion = "

  + location + ", anonymousType = " + anonymousType + ", type = "

  + type + ", confirmTime = " + confirmTime + ", getPostSupport = "

  + getPostSupport + ", responseSpeed = " + responseSpeed;

  }

  private String ipAddress;

  private int port;

  private String location;

  private String anonymousType;

  private String type;

  private String confirmTime;

  private String getPostSupport;

  private String responseSpeed;

  }


  2、Vote.java


  package com.hust.grid.leesf.entrance;

  import java.util.Timer;

  import java.util.concurrent.BlockingQueue;

  import java.util.concurrent.LinkedBlockingQueue;

  import com.hust.grid.leesf.bean.IpInfo;

  import com.hust.grid.leesf.thread.IPCollectTask;

  import com.hust.grid.leesf.thread.VoteThread;

  public class Vote {

  private BlockingQueue<IpInfo> ipInfoQueue;

  private IPCollectTask ipCollectTask;

  private VoteThread voteThread;

  public Vote() {

  ipInfoQueue = new LinkedBlockingQueue<IpInfo>();

  ipCollectTask = new IPCollectTask(ipInfoQueue);

  voteThread = new VoteThread(ipInfoQueue);

  }

  public void vote() {

  Timer timer = new Timer();

  long delay = 0;

  long period = 1000 * 60 * 60;

  // 每一个小时采集一次ip

  timer.scheduleAtFixedRate(ipCollectTask, delay, period);

  // 开启投票任务

  voteThread.start();

  }

  public static void main(String[] args) {

  Vote vote = new Vote();

  vote.vote();

  }

  }


  剩下的代码部分,机灵代理会在后续继续分享,请锁定更新。


相关文章内容简介
推荐阅读
  • 30 2019-09
    Python切换代理IP的方法

    代理IP的广泛应用,可以说从侧面上催生了大数据的发展,爬虫项目使用代理IP能够有效开展,让不少网络工作者的工作量得以减少。

  • 19 2019-08
    代理IP也有3种分类,你选对了吗?

    刷量、爬虫的时候经常会用到代理IP,我们通常以为使用了代理IP就相当于隐身,将自己的真实IP隐藏了起来,但是现实情况真的是这样的吗?

  • 03 2020-10
    一手私密代理IP的可用率

    普通代理IP是从互联网上扫描来的“万人骑”IP,这一类IP的网络质量很一般,由于我们验证服务器的网络环境跟您的网络环境不是100相同,所以我们不能保证这里的普通代理IP在您那边100能用,

  • 05 2020-02
    代理服务器有哪些类型

    代理服务器的功能就是可以代理网络用户去或得网络信息,其实就是网络中转站,隐藏了用户的真实IP,还可以加快网络速度。

  • 25 2020-09
    安全上网就用IP代理软件

    在手机电脑全面普及的今天,网络在给我们便利的同时,也给我们带来了潜在威胁,这种不安全因素主要集中的网络的开放性,当我们访问一个网站时,对方会通过IP地址识别记录我们,而这有

  • 15 2020-06
    代理ip池是怎么搭建的

    很多朋友是通过爬取网络上的免费HTTP代理来搭建本地IP池,今天主要讲的是通过购买付费HTTP代理来搭建本地IP池。有朋友会纳闷,已经付费购买了IP池,为什么还要多此一举搭建本地IP池呢?

在线咨询
大客户经理
大客户经理
1829380381
13316264505

大客户经理微信

微信公众号

微信公众号

回到顶部