浅析代理服务器的测试与实现
摘 要
本论文主要描述一个代理服务器测试程序的设计与实现需要了解代理服务器的工作原理在Visual C++6.0平台上开发一个基于对话框的MFC应用程序此程序能够在短时间内验证一批具有特定格式的代理并将他们按照速度快慢的顺序排列使得用者能很方便的选择快速可用的代理去访问外网资源。
在程序的设计之中作者借鉴了成熟代理软件ProxyFox的一些设计理论。为了让习惯操作ProxyFox的用者能够很好的使用SuperProxy设计了与ProxyFox相似的界面 当然也在一定程度上使界面做得更为简洁、美观。
关键词代理服务器测试
The Design and Implementation of Proxy Server Testing
Program
Abstract
This thesis describes a proxy server testing program’s design and realization. Itis needed to master the theory of the Proxy server ,and realize it in Visual C++6.0development platform based on an MFC dialog application procedure. Thisprocedure can verify a number of specific format agents in a short time and orderthem according to the speed.Users can choose the quickest available agents to visitnetwork resources.
In the design process the author drawes on the experience of mature software,ProxyFox, to accommodate the operation hab its o f ProxyFox.ProxyFox is designedwith a similar interface,but it is more concise and beautiful.
Key words:proxy; server; test
目 录
论文总页数 22页1 引言. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1
1. 1 课题背景. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1
1.2 本课题研究的意义. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1
1.3 本课题的研究方法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2
2 系统设计基础. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2
2. 1 VC++6.0简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2
2.2 MFC概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2
3 SuperProxy简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
3. 1 系统开发环境. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
3.2 SuperProxy功能简述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
4 SuperProxy的设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
4. 1 SuperProxy的界面设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
4.2 SuperProxy功能模块设计阶段. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6
4.3 SuperProxy流程图. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6
5 SuperProxy具体编码实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6
5. 1 代理资源列表模块实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6
5.2 代理验证模块实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8
6 系统测试. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17
结 论. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18
参考文献. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19
1 引言
1.1 课题背景
代理服务器英文全称是Proxy Server其功能就是代理网络用户去取得网络信息。形象的说它是网络信息的中转站。在一般情况下我们使用网络浏览器直接去连接其他Internet站点取得网络信息时须送出Request信号来得到回答然后对方再把信息以bit方式传送回来。代理服务器是介于浏览器和Web服务器之间的一台服务器有了它之后浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求 Request信号会先送到代理服务器 由代理服务器来取回浏览器所需要的信息并传送给你的浏览器。而且大部分代理服务器都具有缓冲的功能就好象一个大的Cache它有很大的存储空间它不断将新取得数据储存到它本机的存储器上如果浏览器所请求的数据在它本机的存储器上已经存在而且是最新的那么它就不重新从Web服务器取数据而直接将存储器上的数据传送给用户的浏览器这样就能显著提高浏览速度和效率。
它的工作主要在开放系统互联(OSI)模型的对话层。主要的功能有
1.突破自身IP访问限制访问国外站点。教育网、 169网等网络用户可以通过代理访问国外网站。
2.访问一些单位或团体内部资源如某大学FTP(前提是该代理地址在该资源的允许访问范围之内) 使用教育网内地址段免费代理服务器就可以用于对教育网开放的各类FTP下载上传 以及各类资料查询共享等服务。
3.突破中国电信的IP封锁中国电信用户有很多网站是被限制访问的这种限制是人为的不同Serve对地址的封锁是不同的。所以不能访问时可以换一个国外的代理服务器试试。
4.提高访问速度通常代理服务器都设置一个较大的硬盘缓冲区 当有外界的信息通过时同时也将其保存到缓冲区中当其他用户再访问相同的信息时 则直接由缓冲区中取出信息传给用户 以提高访问速度。
5.隐藏真实IP上网者也可以通过这种方法隐藏自己的IP免受攻击。
1.2 本课题研究的意义
在当前情况下 由于内网和网络或者是两个不同网络之间互访都有很大的速度瓶颈就像校园网去访问电信网就慢的出奇在这种情况下很多人都会采用代理上网以期得到可观的速度。本课题就是针对这种情况设计与实现一个代理服务器测试程序 SuperProxy(极速代理)是在Visual C++6.0平台上开发的一个基于对话框的MFC应用程序此程序能够在短时间内验证特定格式的一批代理并将他们按照速度快慢的顺序排列。使得用者能很方便的选择快速可
用的代理去访问外网资源。
1.3 本课题的研究方法
课题研究的步骤一般分为五个步骤确定课题——拟定课题计划——写开题报告——进行研究——结题。首先根据自己的特点选择适于自己的知识结构 自己感兴趣的课题。在进行研究的同时读书查与此课题相关的资料并收集相关问题和经验为撰写论文打好基础。另外同课题教师经常研究讨论并归类整理自己遇到的问题让自己不仅做好设计并牢牢掌握住需要用到的技术。
2 系统设计基础
2.1 VC++6.0简介
VC++给人的第一感觉便是过于专业化高深和晦涩。其实也并非如此在基本掌握了它之后你就会发现 VC++使用起来是很方便的。至于说难那是有点。 但这并非是VC++的过错而是Windows这个庞大无比对用户亲切之至却对程序员不那么友好的家伙。再说 VC++系出自名门微软的哪样东西不是先把你服侍得舒舒服服然后再把你口袋中的钱掏个精光呢
VC++是Windows平台上的C++编程环境学习VC要了解很多Windows平台的特性并且还要掌握MFC、 ATL、 COM等的知识难度比较大。 Windows下编程需要了解Windows的消息机制以及回调(callback)函数的原理MFC是Win32API的包装类需要理解文档视图类的结构窗口类的结构消息流向等等 COM是代码共享的二进制标准需要掌握其基本原理等等。
2.2 MFC概述
MFC,微软基础类(Microsoft Foundation Classes) 实际上是微软提供的,用于在C++环境下编写应用程序的一个框架和引擎 VC++是WinOS下开发人员使用的专业C++ SDK(SDK,Standard SoftWare Develop Kit专业软件开发平台) 。 MFC就是挂在它之上的一个输助软件开发包 MFC作为与VC++血肉相连的部分(注意C++和VC++的区别:C++是一种程序设计语言是一种大家都承认的软件编制的通用规范而VC++只是一个编译器或者说是一种编译器+源程序编辑器的IDE WS PlatForm这跟Pascal和Dephi的关系一个道理 Pascal是Dephi的语言基础, Dephi使用Pascal规范来进行Win下应用程序的开发和编译却不同于Basic语言和VB的关系 Basic语言在VB开发出来被应用的年代已经成了Basic语言的新规范 VB新加的Basic语言要素如面对对象程序设计的要素是一种性质上的飞跃使VB既是一个IDE又成长成一个新的程序设计语言 MFC同BC++集成的VCL一样是一个非外挂式的软件包,类库只不过MFC类是微软为VC++专配的。jwwwwwwmMMmmmm2
MFC是Win API与C++的结合 API,即微软提供的WinOS下应用程序的编程语言接口是一种软件编程的规范但不是一种程序开发语言本身可以允许用户使用各种各样的第三方(如我是一方微软是一方 Borland就是第三方)的编程语言来进行对Win OS下应用程序的开发,使这些被开发出来的应用程序能在WinOS下运行 比如VB,VC++,Java,Dehpi编程语言函数本质上全部源于API 因此用它们开发出来的应用程序都能工作在WinOS的消息机制和绘图里遵守WinOS作为一个操作系统的内部实现,这其实也是一种必要微软如果不提供API,这个世上对Win编程的工作就不会存在微软的产品就会迅速从时尚变成垃圾上面说到MFC是微软对API函数的专用C++封装这种结合一方面让用户使用微软的专业C++SDK来进行Win下应用程序的开发变得容易因为MFC是对API的封装。微软做了大量的工作,隐藏了好多内节程序开发人员在Win下用C++&MFC编制软件时的大量内节,如应用程序实现消息的处理设备环境绘图这种结合是以方便为目的的必定要付出一定代价(这是微软的一向作风) 。因此就造成了MFC对类封装中的一定程度的的冗余和迂回,但这是可以接受的。3 SuperProxy简介
3.1 系统开发环境
系统软件环境
操作系统 WindowsXP
程序语言 C++
开发平台 Visual C++ 6.0
浏览器 Inertnet Explorer 6.0
系统硬件环境
处理器 AMD Sempron 2400+ 1.66GHz
内存 256MB
3.2 SuperProxy功能简述
SuperProxy是围绕着怎样验证代理服务器的可用性来展开设计与实现的所以很明确的讲整个系统的主要功能为快速准确的验证一批代理并按照一定的次序对验证结果进行排序能够很明显的看出代理间的速度差异另外会提供一些可以给大家带来方便的辅助功能。以下对SuperProxy将要实现的功能做简要的描述
1. 可以从. txt格式的文件导入代理列表,自动从文件中识别出代理 自动过滤掉空白或者无效格式代理。
2. 提供对代理列表的多种操作如删除代理、添加代理、复制代理等。
3. 快速准确地验证所有代理并自动按照速度的快慢排序 另外提供对
单个代理和可选代理的验证。
4. 可以导出可用可选代理到. txt文件。
5. 可以选定某个代理设置为IE代理。
6. 提供一个代理资源列表方便用户得到代理。其中提供了对代理资源列表的一些相关操作如添加、删除代理等。
7. 简单的代理验证设置。
图1 SuperProxy功能结构图jwwwwwwmMMmmmm4
tmhhost可谓是相当熟悉国内网络情况(资质方面:ISP\ICP\工商齐备),专业售卖海外高端优质线路的云服务器和独立服务器,包括了:香港的三网cn2 gia、日本 cn2、日本软银云服务器、韩国CN2、美国三网cn2 gia 云服务器、美国 cn2 gia +200G高防的。另外还有国内云服务器:镇江BGP 大连BGP数据盘和系统盘分开,自带windows系统,支持支付宝付款和微信,简直就是专...
iON Cloud怎么样?iON Cloud升级了新加坡CN2 VPS的带宽和流量最低配的原先带宽5M现在升级为10M,流量也从原先的150G升级为250G。注意,流量也仅计算出站方向。iON Cloud是Krypt旗下的云服务器品牌,成立于2019年,是美国老牌机房(1998~)krypt旗下的VPS云服务器品牌,主打国外VPS云服务器业务,均采用KVM架构,整体性能配置较高,云服务器产品质量靠...
百纵科技:美国高防服务器,洛杉矶C3机房 独家接入zenlayer清洗 带金盾硬防,CPU全系列E52670、E52680v3 DDR4内存 三星固态盘阵列!带宽接入了cn2/bgp线路,速度快,无需备案,非常适合国内外用户群体的外贸、搭建网站等用途。C3机房,双程CN2线路,默认200G高防,3+1(高防IP),不限流量,季付送带宽美国洛杉矶C3机房套餐处理器内存硬盘IP数带宽线路防御价格/月套...