基于代理监控外网访问小软件

本设计针对网站的访问和特定文件夹的操作进行记录。对网站的访问的审计记录涉及到访问的主机,时间,请求参数等。对文件的记录主要涉及添加,删除,修改,重命名等。本程序是基于C#,VS2010开发。使用步骤:打开软件,点击“监控”之后,软件工作。此时所有对外网访问的HTTP请求都会被记录。点击文件操作审计标签,则进行文件的审计。

1)在网站访问监控方面:使用FiddlerCore客户端代理处理HTTP协议,经过处理之后,监控到浏览器对外部网站的每一个请求,记录,分析请求之后呈现到用户界面中。

    2)文件监控只是实现了FileSystemWatcher类,针对用户选择的文件夹和文件类型来监控,可以对特定的文件监控(打开,删除,修改,重命名等操作)。有图有真相!需要下载的可以到CSDN下载:http://download.csdn.net/source/3366745

 /// <summary>
        /// 开始对访问的网站进行分析
        /// </summary>
        public void startFidder()
        {
            //通知事件委托
            Fiddler.FiddlerApplication.OnNotification += delegate(object sender, NotificationEventArgs oNEA) 
            { 
                AddMessageform("OnNotification is "+oNEA.NotifyString+"\n");
            };
            //记录日志事件委托
            Fiddler.FiddlerApplication.Log.OnLogString += delegate(object sender, LogEventArgs oLEA) 
            {
                AddMessageform("OnLogString is "+oLEA.LogString+"\n");
            };
 
            Fiddler.FiddlerApplication.BeforeRequest += delegate(Fiddler.Session oS)
            {                
                //此处可以对请求和响应进行响应的修改和处理
               
                AddMessageform("请求的相应为: "+oS.fullUrl + "\n");
                HostStatistical(oS);                
                oS.bBufferResponse = true;
            };
 
            Fiddler.FiddlerApplication.BeforeResponse += delegate(Fiddler.Session oS) 
            {
                //Console.WriteLine("{0}:HTTP {1} for {2}", oS.id, oS.responseCode, oS.fullUrl);
                AddMessageform("请求序号为:"+oS.id+"响应的状态码为:"+oS.responseCode+"服务器返回的URL地址为:"+oS.fullUrl);
                HostStatistical(oS);
               
                //oS.utilDecodeResponse(); oS.utilReplaceInResponse("Microsoft", "Bayden");
            };

            Fiddler.FiddlerApplication.AfterSessionComplete += delegate(Fiddler.Session oS) 
            {
                HttpSession hs = new HttpSession(oS);
                Sessions.Add(hs);
                AddMessageform("\n最终的会话信息:\t" + oS.fullUrl + "\n");
                HostStatistical(oS);
                  
            };
                                               
            Fiddler.CONFIG.IgnoreServerCertErrors = false;
             
            // 可以对HTTPS信息进行监控,但是需要使用到MakeCert.exe文件放置呆应用程序的文件夹中           
            Fiddler.FiddlerApplication.Startup(8877, true, true);//程序运行时,自动将浏览器设定为此端口,以便监控系统侦听          
 
            // Wait Forever for the user to hit CTRL+C.  
            // BUG BUG: Doesn't properly handle shutdown of Windows, etc.
            Object forever = new Object();
            lock (forever)
            {
                System.Threading.Monitor.Wait(forever);
            }
           
        }
      /// <summary>
      /// 对访问主机的统计
      /// </summary>
      /// <param name="os"></param>
        public void HostStatistical(Fiddler.Session os)
        {
            string host = string.Empty;
            string[] tempArray = os.hostname.Split('/');//os.hostname格式为:http://www.baidu.com/id/china/my.php 
            host = tempArray[0];
            if (tempArray.Length>2)
            {
                 host = tempArray[2];//tempArray[0]="http:",tempArray[1]="",tempArray[2]=www.baidu.com
            }
            
            if (!hashSite.ContainsKey(host))
            {
                hashSite.Add(host, 1);//key为主机,value为访问次数
            }
            else
            {
                int count = Convert.ToInt32(hashSite[host].ToString());
                hashSite.Remove(host);
                hashSite.Add(host, count + 1);
            }
        }

作者: lxk613   发布时间: 2011-06-15