Technorati 标记: http 代理验证及测试
Technorati 标记: C#

参考了网上很多资料,综合整理出来最终的代码:

  1.  
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.Configuration;
  5. using System.Diagnostics.Contracts;
  6. using System.IO;
  7. using System.Linq;
  8. using System.Net;
  9. using System.Net.NetworkInformation;
  10. using System.Text;
  11. using System.Threading.Tasks;
  12. using static System.Console;
  13. using static System.GC;
  14. using static System.Net.WebRequest;
  15.  
  16. namespace 代理测试
  17. {
  18. class Program
  19. {
  20. int printCount;
  21. Uri uri;
  22. Encoding bin;
  23. string[] IpSectionSpan = { "10.197.255.", "10.197.198." };
  24. NetworkCredential credit;
  25.  
  26. [STAThread]
  27. static void Main(string[] args)
  28. {
  29. new Program();
  30. ReadKey();
  31. }
  32.  
  33. public Program()
  34. {
  35. var dr = new AppSettingsReader();
  36.  
  37. credit = new NetworkCredential(
  38. dr.GetValue("uid", typeof(string)).ToString(),
  39. dr.GetValue("pwd", typeof(string)).ToString());
  40.  
  41. //var creadentiCache = new CredentialCache();
  42. uri = new Uri("http://wwww.baidu.com/");
  43.  
  44. bin = Encoding.GetEncoding("UTF-8");
  45.  
  46. //测试 IpSectionSpan 中所有IP段中所有IP
  47. TestIPSetions();
  48. }
  49.  
  50. private void TestIPSetions()
  51. {
  52. //for (int i = 1; i < 255; i++)
  53. //{
  54. TestInSpan(198.ToString());
  55. //}
  56. }
  57.  
  58. private void TestInSpan(string ipSect)
  59. {
  60. for (var i = 255; i > 0; i--)
  61. {
  62. var wproxy = new WebProxy(@"10.137." + ipSect + "." + i, 3128);
  63. //uri = new Uri("http://10.137.255." + i+":3128/");
  64. //creadentiCache.Add(uri, "Basic", credit);
  65. //wproxy.Credentials = creadentiCache;
  66. wproxy.Credentials = credit;
  67.  
  68. //Collect();
  69. var req = Create(uri) as HttpWebRequest;
  70. req.PreAuthenticate = true;
  71. req.Timeout = 1000; //超时
  72. req.Proxy = wproxy;
  73. req.KeepAlive = false;
  74.  
  75. try
  76. {
  77. WebResponse resp;
  78.  
  79. req.BeginGetResponse(ra =>
  80. {
  81. try
  82. {
  83. using (resp = req.EndGetResponse(ra))
  84. {
  85. if (resp != null)
  86. {
  87. var sr = new StreamReader(resp.GetResponseStream(), bin);
  88. var str = sr.ReadToEnd();
  89. if (!str.Contains("百度")) return;
  90. WriteLine("{0}\t:{1} \t 验证成功!", printCount++, wproxy.Address);
  91. sr.Close();
  92. sr.Dispose();
  93. }
  94. }
  95. }
  96. catch (Exception ex)
  97. {
  98. WriteLine("{0}\t:{1} \t 验证失败,失败原因:\t {2}", printCount++, wproxy.Address, ex.Message);
  99. }
  100.  
  101. }, null);
  102. }
  103. catch (Exception e)
  104. {
  105. WriteLine(e.Message);
  106. }
  107. }
  108. }
  109. }
  110. }

http 代理 测试的更多相关文章

  1. 利用Charles做代理测试电脑上写的H5页面

    做H5页面的同学可能经常会遇到一个场景,就是电脑上调试好的页面怎么在手机上访问测试呢? 下面就介绍一种自己经常使用的方式,利用Charles代理软件来实现! 安装Charles 直接去官网下载对应的系 ...

  2. Java 通过代理测试webService接口

    以下代码针是针对电脑是通过代理上网的情况时使用: System.getProperties().put("http.proxyHost", "111.111.11.1&q ...

  3. nginx 安装与反向代理测试 under MAC

    安装 在 Mac 下可以直接使用 homebrew 安装 nginx brew search nginx brew install nginx 启动 nginx: sudo nginx,访问 8080 ...

  4. iphone设置fiddler代理测试

    iPhone上配置fiddler为代理方法: 打开IPhone, 找到你的网络连接,打开HTTP代理,输入Fiddler所在机器的IP地址(比如:192.168.1.104) 以及Fiddler的端口 ...

  5. docker使用代理(测试docker 17.06)

    环境:debian9 service docker stop sudo HTTP_PROXY=http://127.0.0.1:1080 dockerd sudo docker pull gcr.io ...

  6. Python爬虫-代理池-爬取代理入库并测试代理可用性

    目的:建立自己的代理池.可以添加新的代理网站爬虫,可以测试代理对某一网址的适用性,可以提供获取代理的 API. 整个流程:爬取代理 ----> 将代理存入数据库并设置分数 ----> 从数 ...

  7. [原]HAproxy 代理技术原理探究

    HAproxy 技术分享 简介 HAProxy是一款提供高可用性.负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件 Features 1.免费 2.能够做到4层以上代理 3.高性能 ...

  8. JDK动态代理实现原理

    之前虽然会用JDK的动态代理,但是有些问题却一直没有搞明白.比如说:InvocationHandler的invoke方法是由谁来调用的,代理对象是怎么生成的.直到看了他的文章才彻底明白,附网址:htt ...

  9. Spring中的JDK动态代理

    Spring中的JDK动态代理 在JDK1.3以后提供了动态代理的技术,允许开发者在运行期创建接口的代理实例.在Sun刚推出动态代理时,还很难想象它有多大的实际用途,现在动态代理是实现AOP的绝好底层 ...

随机推荐

  1. Tomcat 设置自动编译,自动发布,自动部署

    Tomcat服务器 具有一个常用的功能: 即自动编译,自动发布,自动部署功能. 问题: 当我们第一次发布程序以后,我们增删改Servelt,Java,.xml等文件,都必须重启Tomcat,如果项目巨 ...

  2. iOS 视图跳转

    //跳转 - ( void)present:( id )sender { NSLog ( @"the button,is clicked …" ); // 创建准备跳转的 UIVi ...

  3. poj1563---蜗牛爬井

    #include <stdio.h> #include <stdlib.h> int main() { int dayTh; float Udis,currentHeight, ...

  4. saiku导出excel单元格格式与中文列宽自动适应

    在saiku导出excel后打开发现单元格的整数也显示为小数,并且含有中文的列宽没有自动适应,解决办法如下: 打开ExcelWorksheetBuilder.java文件,找到applyCellFor ...

  5. linux创建文件树,孩子兄弟树(或广义表),创建文件树及其訪问

    假设在Linux下要訪问一个目录. 我们须要知道一下系统调用. 1.opendir(path); //注意path是绝对路径 2.ptr=readdir(dir);//dir 为opendir();正 ...

  6. OS笔记047代理传值和block传值

    在两个不同的控制器之间传递数据,可以使用代理传值或者block传值. 例子是一个简单通讯录. 主界面如下: 添加联系人界面 查看/编辑联系人界面:默认是查看模式,点击编辑后进入编辑模式 编辑模式 数据 ...

  7. OracleOraDb10g_home1TNSListener服务无法启动

    启动OracleOraDb10g_home1TNSListener服务的时候就报错:“Windows无法启动OrcleOraDb11g_home1TNSListener服务(位于本地计算机上). 错误 ...

  8. bootstrap2.3.2常用标签的使用

    <!DOCTYPE html> <html lang="zh_CN"> <head> <title>Bootstrap 101 Te ...

  9. IO库 8.2

    题目:编写一个测试函数,将cin作为参数传入. #include <iostream> using std::istream; istream& func(istream& ...

  10. 关于Scrapy框架的基本概念

    Scrapy爬取网页基本概念 Scrapy爬取网页基本概念 怎么样用Scrapy生成project? scrapy startproject xxx 如何用Scrapy爬取网页? import scr ...