您的位置: 首页 > 新闻资讯 > > 正文

C# 验证过滤代理IP是否有效

发布时间:2020年01月08日 来源:互联网

  

C# 验证过滤代理IP是否有效



  private void 导入IPToolStripMenuItem_Click(object sender, EventArgs e)

  {

  using (OpenFileDialog Openfile = new OpenFileDialog())

  {

  Openfile.Filter = "文本文件|*.txt";

  Openfile.Multiselect = false;

  if (Openfile.ShowDialog() == DialogResult.OK)

  {

  Thread threadfile = new Thread(() => ReadFileIP(Openfile.FileName)) { IsBackground = true };

  threadfile.Start();

  }

  }

  }

  ///

  /// 读取txt代理ip

  ///

  ///

  private void ReadFileIP(string filename)

  {

  txtmsg.BeginInvoke(new Action(() =>

  {

  txtmsg.AppendText("开始导入IP代理!".SetLog());

  }));

  var file = File.Open(filename, FileMode.Open);

  int num = 0;

  int goods = 0;

  int repeat = 0;

  using (var stream = new StreamReader(file))

  {

  while (!stream.EndOfStream)

  {

  num++;

  string linetemp = stream.ReadLine().Trim().ToLower();

  string[] iptxt = linetemp.Split(':');

  if (iptxt.Count() == 2)

  {

  lock (Config.lock_prxoy)

  {

  var data = Config._prxoyList.Where(m => m.ip == iptxt[0]).FirstOrDefault();

  if (data != null)

  {

  repeat++;

  continue;

  }

  }

  goods++;

  Model.ProxyIP _proxyip = new Model.ProxyIP();

  _proxyip.ip = iptxt[0];

  _proxyip.prot = int.Parse(iptxt[1]);

  ListViewItem item = new ListViewItem(_proxyip.ip);

  item.SubItems.Add(_proxyip.prot.ToString());

  item.SubItems.Add("");

  listViewIP.Invoke(new Action(() =>

  {

  ListViewItem itemresult = listViewIP.Items.Add(item);

  _dic.Add(_proxyip.ip, itemresult);

  //dic.Add(_send.Tel, backitem);

  }));

  lock (Config.lock_prxoy)

  {

  Config._prxoyList.Add(_proxyip);

  }

  }

  }

  }

  txtmsg.Invoke(new Action(() =>

  {

  string log = string.Format("添加代理IP完成!有效数据为:{0},过滤重复数据:{1},总数据:{2}", goods.ToString(), repeat.ToString(), num.ToString());

  txtmsg.AppendText(log.SetLog());

  }));

  Thread filter = new Thread(new ThreadStart(filterIP)) { IsBackground = true };

  filter.Start();

  }

  private void filterIP()

  {

  txtmsg.Invoke(new Action(() =>

  {

  txtmsg.AppendText("正在过滤IP数据!".SetLog());

  }));

  ListTaskList = new List();

  lock (Config.lock_prxoy)

  {

  foreach (Model.ProxyIP _model in Config._prxoyList)

  {

  var task = System.Threading.Tasks.Task.Factory.StartNew(() =>

  {

  bool reslut = VerIP(_model.ip, _model.prot);

  if (reslut)

  {

  _model.filter = Model.filterIP.有效;

  this.Invoke(new Action(() =>

  {

  _dic[_model.ip].SubItems[2].Text = "有效";

  }));

  }

  else

  {

  _model.filter = Model.filterIP.无效;

  this.Invoke(new Action(() =>

  {

  _dic[_model.ip].SubItems[2].Text = "无效";

  }));

  }

  });

  TaskList.Add(task);

  }

  }

  System.Threading.Tasks.Task.WaitAll(TaskList.ToArray());

  txtmsg.Invoke(new Action(() =>

  {

  txtmsg.AppendText(Config._prxoyList[0].filter.ToString() + "过滤IP数据完成!".SetLog());

  }));

  }

  private bool VerIP(string ip,int port)

  {

  try

  {

  HttpWebRequest Req;

  HttpWebResponse Resp;

  WebProxy proxyObject = new WebProxy(ip, port);// port为端口号 整数型

  Req = WebRequest.Create("https://www.baidu.com") as HttpWebRequest;

  Req.Proxy = proxyObject; //设置代理

  Req.Timeout = 1000; //超时

  Resp = (HttpWebResponse)Req.GetResponse();

  Encoding bin = Encoding.GetEncoding("UTF-8");

  using (StreamReader sr = new StreamReader(Resp.GetResponseStream(), bin))

  {

  string str = sr.ReadToEnd();

  if (str.Contains("百度"))

  {

  Resp.Close();

  return true;

  }

  else

  {

  return false;

  }

  }

  }

  catch (Exception ex)

  {

  return false;

  }

  }

  }

  


  主要的代码 ,我就贴上来了,那些model实体的,你们估计也用不到,这个过滤速度很快


相关文章内容简介

1 不同的代理IP有什么区别?

    不同的代理IP有什么区别?使用代理IP时,现在有很多代理IP商家,很多用户也看不出有什么不同,也不知道该怎么选择。那么,代理IP有什么不同呢?    首先代理IP有免费和收费的,免费就是不需要花钱,在网络上可以直接找到,但可用率很低,挑选可用IP会很麻烦,只适合初级学者,不适合用于工作。收费就是由商家提供的代理IP软件,需要花钱,但操作简单,换IP也方便。如果不小心选择了质量差的代理,访问时候对方可能会识别出你使用了代理IP,依旧会查出真实IP,导致被封。    所以如果是专业人员工作使用代理IP,建议选择收费的代理IP,这样工作效率高,还不会有被封的风险。万变ip代理提供的IP均为高匿名IP,有不同套餐,可以按照自己的项目来选择,价格合理。    找到合适的代理IP要根据自己的实际需求来定,最简单的方法就是对IP进行验证,可以验证代理IP是否有效。还可以对代理IP提供的IP匿名程度来进行检测,一般都需要用高匿名代理效果是最好的。还可以验证代理IP是否可以访问... [阅读全文]

2 代理ip怎么选择呢?

    代理ip怎么选择呢?代理IP很多人都不陌生,特别是推广人员,可以给我们的工作带来很大的帮助。随着需求的增大,IP代理软件特别多,所以在挑选的时候让很多用户不知该怎么办。那么,代理IP哪家好呢?    万变ip代理IP是非常实用的,是自己搭建的服务器,IP可用率非常高,可达到97%,IP质量无需担心,在使用的时候绝对不会出现冲突的情况。而且操作的过程很简单,只需一键就可快速更换IP,还有专业技术人员在线指导,无论是否用过代理IP软件,都可以快速掌握。    选择好的代理IP软件用户要多参考几家软件,有的软件并不是特别好用,所以用户不要急于选择,可以多试用几家。    现在在网络中随便搜索就可以找到很多代理IP软件,因为软件的数量剧增,在选择的时候就尤为重要,如果选择了不好的代理,不仅不会给我们的工作带来帮助,还会很麻烦。下面就为大家介绍一下选择代理IP的三要素。    1.IP资源的数量。如果可以提供的IP数量很少,在切换IP的时候就很有可能... [阅读全文]

推荐阅读

  1. 02

    2021-02

    ip代理的质量关键看什么?

    如果总是只有一个 ip地址 ,重复次数会有上限,尤其是对于网络推广和网络游戏的用户。当我们访问网站时,我们经常会遇到访问受限的情况,所以我们不能继续访问它们。

  2. 17

    2020-12

    爬虫工作中会遇到什么难题?

    网络工作常常需要爬虫帮助解决工作的难题,但爬虫在工作中也会难免遇到一些问题,例如会遇到各种反爬策略,并且会不时的进行升级,给爬虫工作带来了很大的困扰,也降低了我们的工作效

  3. 04

    2020-03

    如何使用高速http代理ip

    HTTP代理 IP作为最常见的协议模块隐藏 IP代理 ,使用非常简单,可以直接设置在IE上,也可以与程序的批处理操作相匹配。目前市场IP上有许多免费的HTTP代理,高匿名标志,编辑器可以很有责任

  4. 03

    2020-01

    代理ip的ip资源有哪些?哪种更好?

    代理ip是互联网时代常用的一种,对从事大数据的大咖们来说不能再熟悉的事了,也受到广大的用户使用,对于一些特殊的应用场景都需要用到代理ip,有需求就有人关注,很多用户在选择中关

  5. 21

    2020-11

    是否可以在使用代理服务器ip之后指定主机?

    是否可以在使用 代理服务器 ip 之后指定主机?在浏览器中输入域名后,该机器设置的DNS服务器首先对域名进行解析,如果LAN中没有DNS设置,则路由器的DNS服务器对域名进行解析。

  6. 23

    2020-07

    长期性应用,提议挑选付钱代理服务器ip

    代理服务器 ip 就是替代顾客的IP进行上外网工作中!代理服务器ip现如今早就被应用到大伙儿的工作中生活起居,代理网站IP上外网,就好像没有抗原体的新生婴儿一样,非常容易被病毒性感

因为专业! 所以简单! 产品至上,价格实惠 是我们服务追求的宗旨

免费试用