1.如何编程实现扫描IP代理服务器的目的。。最好是有源码。。
2.代理服务器和普通服务器有什么不同。。

解决方案 »

  1.   

    代理服务器就是一个跳板,要不显示的都是你的地址了,容易找到啊
    好久没写东西,工作太忙,人也懒了点,无聊之中,随便学点东西,一个简单的端口扫描,可以试着改进 :
     
           //===========================================================
    //   C# 实现端口扫描
    //===========================================================
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Net;
    using System.Net.Sockets;using System.Threading;namespace ConsoleApplication3
    {
        class Program
        {
            //已扫描端口数目
            internal static int scannedCount = 0;        internal static int runningThreadCount = 0;        internal static List<int> openedPorts = new List<int>();        static int startPort = 1;
            static int endPort = 500;        static int maxThread = 100;        
            static void Main(string[] args)
            {
                //简单提示
                Console.WriteLine("////////////////////////////////////////////////////////////////////////////////////");
                Console.WriteLine("//  Writer;Feeling");
                Console.WriteLine("////////////////////////////////////////////////////////////////////////////////////");
                Console.WriteLine("请输入要扫描的主机;");
                string host = Console.ReadLine();
                Console.WriteLine("请输入扫描的端口 例如:1-800");
                string portRange =Console.ReadLine();
                startPort = int.Parse(portRange.Split('-')[0].Trim());
                endPort = int.Parse(portRange.Split('-')[1].Trim());            for (int port = startPort; port < endPort; port++)
                {
                    Scanner scanner = new Scanner(host, port);
                    Thread thread = new Thread(new ThreadStart(scanner.Scan));
                    thread.Name = port.ToString();
                    thread.IsBackground = true;
                    thread.Start();                runningThreadCount++;
                    Thread.Sleep(10);                //循环,直到某个线程工作完毕才启动另一新线程,也可以叫做推拉窗技术
                    while (runningThreadCount >= maxThread) ;
                }
                   //空循环,直到所有端口扫描完毕
                  while (scannedCount + 1 < (endPort - startPort)) ;
                  Console.WriteLine();
                  Console.WriteLine();             //输出结果
                  Console.WriteLine("Scan for host:{0} has been completed, \n total {1} ports scanned, \n opened ports:{2}", host, (endPort - startPort), openedPorts.Count);              foreach (int port in openedPorts)
                  {
                      Console.WriteLine("\tport: {0} is open", port.ToString().PadLeft(6));  
                  }              Console.ReadLine();
                 
            }
        }    class Scanner
        {
            string m_host;
            int m_port;        public Scanner(string host, int port)
            {
                m_host = host;
                m_port = port;
            }
            public void Scan()
            {
                TcpClient tc = new TcpClient();
                tc.SendTimeout = tc.ReceiveTimeout = 2000;            try
                {
                    tc.Connect(m_host, m_port);
                    if (tc.Connected)
                    {
                        Console.WriteLine("Port {0} is Open", m_port.ToString().PadRight(6));
                        Program.openedPorts.Add(m_port);
                    }
                }
                catch
                {
                    Console.WriteLine("Port {0} is Closed", m_port.ToString().PadRight(6));
                }
                finally
                {
                    tc.Close();
                    tc = null;
                    Program.scannedCount++;
                    Program.runningThreadCount--;
                }
            }    }
    }
      

  2.   

    可以用HttpWebRequest,设置Proxy属性,如果设置了Proxy属性仍能某个指定网站,证明该Proxy是可用的。
      

  3.   

    // 创建HttpWebRequest                
    HttpWebRequest myWebRequest=(HttpWebRequest)WebRequest.Create("http://www.microsoft.com");
    myWebRequest.Proxy=new WebProxy("123.45.67.89");//设置代理服务器
    //创建HttpWebResponse
    HttpWebResponse myWebResponse=(HttpWebResponse)myWebRequest.GetResponse();
    if(myWebResponse.StatusCode==HttpStatusCode.OK)
    {
    //表示此代理服务器可用
    }
      

  4.   

    英文全称: Proxy Server,
    功能: 就是代理网络用户去取得网络信息。形象的说,它是网络信息的中转站.
    在一般情况下,我们使用网络浏览器直接去连接其他Internet站点取得网络信息时,是直接联系到目的站点服务器,然后由目的站点服务器把信息传送回来。代理服务器是介于浏览器和Web服务器之间的另一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求,信号会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给你的浏览器。 在 www.51an.com 的网址框中输入您要访问的网站地址,点击代理浏览便会打开新的窗口链接代理服务器,等待几秒即可,如果此时出现无法链接服务器等错误,请在上面尝试选择其它的服务器,因为代理服务器对资源的消耗比较大,并且存在时效性,因此有时候无法打开,必须多次尝试代理服务器。每天自动更新最新可用服务器。大部分代理服务器都具有缓冲的功能,就好像一个大的Cache,它有很大的存储空间,它不断将新取得数据储存到它本机的存储器上,如果浏览器所请求的数据在它本机的存储器上已经存在而且是最新的,那么它就不重新从Web服务器取数据,而直接将存储器上的数据传送给用户的浏览器,这样就能显著提高浏览速度和效率。 更重要的是:代理服务器是 Internet链路级网关所提供的一种重要的安全功能,它的工作主要在开放系统互联 (OSI) 模型的对话层,从而起到防火墙的作用。 鉴于上述原因,代理服务器大多被用来连接INTERNET(国际互联网)和INTRANET(局域网)。在国内,所谓中国多媒体公众信息网和教育网都是独立的大型国家级局域网,是与国际互联网隔绝的。出于各种需要,某些集团或个人在两网之间开设了代理服务器,如果我们知道这些代理服务器的地址,就可以利用它到达国外网站。
      

  5.   

    代理服务器的主要功能
    (1)设置用户验证和记账功能,可按用户进行记账,没有登记的用户无权通过代理服务器访问Internet网。并对用户的访问时间、访问地点、信息流量进行统计。(2)对用户进行分级管理,设置不同用户的访问权限,对外界或内部的Internet地址进行过滤,设置不同的访问权限。(3)增加缓冲器(Cache),提高访问速度,对经常访问的地址创建缓冲区,大大提高热门站点的访问效率。通常代理服务器都设置一个较大的硬盘缓冲区(可能高达几个GB或更大),当有外界的信息通过时,同时也将其保存到缓冲区中,当其他用户再访问相同的信息时,则直接由缓冲区中取出信息,传给用户,以提高访问速度。(4)连接Internet与Internet,充当防火墙(Firewall):因为所有内部网的用户通过代理服务器访问外界时,只映射为一个IP地址,所以外界不能直接访问到内部网;同时可以设置IP地址过滤,限制内部网对外部的访问权限。(5)节省IP开销:代理服务器允许使用大量的伪IP地址,节约网上资源,即用代理服务器可以减少对IP地址的需求,对于使用局域网方式接入Internet ,如果为局域网(LAN)内的每一个用户都申请一个IP地址,其费用可想而知。但使用代理服务器后,只需代理服务器上有一个合法的IP地址,LAN内其他用户可以使用10.*.*.*这样的私有IP地址,这样可以节约大量的IP,降低网络的维护成本。什么是HTTP代理:www对于每一个上网的人都再熟悉不过了,www连接请求就是采用的http协议,所以我们在浏览网页,下载数据(也可采用ftp协议)是就是用http代理。它通常绑定在代理服务器的80、3128、8080等端口上。 什么是socks代理:相应的,采用socks协议的代理服务器就是SOCKS服务器,是一种通用的代理服务器。Socks是个电路级的底层网关,是DavidKoblas在1990年开发的,此后就一直作为Internet RFC标准的开放标准。Socks 不要求应用程序遵循特定的操作系统平台,Socks 代理与应用层代理、 HTTP 层代理不同,Socks 代理只是简单地传递数据包,而不必关心是何种应用协议(比如FTP、HTTP和NNTP请求)。所以,Socks代理比其他应用层代理要快得多。它通常绑定在代理服务器的1080端口上。如果您在企业网或校园网上,需要透过防火墙或通过代理服务器访问 Internet就可能需要使用SOCKS。一般情况下,对于拨号上网用户都不需要使用它。注意,浏览网页时常用的代理服务器通常是专门的http代理,它和SOCKS是不同的。因此,您能浏览网页不等于 您一定可以通过SOCKS访问Internet。 常用的防火墙,或代理软件都支持SOCKS,但需要其管理员打开这一功能。如果您不确信您是否需要SOCKS或是否有SOCKS可用,请与您的网络管理员联系。为了使用socks,您需要了解一下内容: ① SOCKS服务器的IP地址 ② SOCKS服务所在的端口 ③ 这个SOCKS服务是否需要用户认证?如果需要,您要向您的网络管理员申请一个用户和口令 知道了上述信息,您就可以把这些信息填入“网络配置”中,或者在第一次登记时填入,您就可以使用socks代理了。 在实际应用中SOCKS代理可以用作为:电子邮件、新闻组软件、网络传呼ICQ、网络聊天MIRC和使用代理服务器上联众打游戏等等各种游戏应用软件当中。