//提取用户的基本信息,调用方法将其存入数据库并返回成功或失败 public Boolean InsertIntoDB(Home.AnalyzeResult AnalyzeResult) { RecordWords RecordWord = new RecordWords(); RecordWord.HostIp = AnalyzeResult.RequestHeader.HostIp; RecordWord.Port = AnalyzeResult.RequestHeader.Port; RecordWord.Method = AnalyzeResult.RequestHeader.Method; RecordWord.URL = AnalyzeResult.RequestHeader.URL; RecordWord.TotalBytes = AnalyzeResult.RequestHeader.TotalBytes; if (AnalyzeResult.ResultReport == "该主机已被设置为黑名单,无法访问") { RecordWord.Visit_Limit = true; } else { RecordWord.Visit_Limit = false; } RecordWord.Remarks = AnalyzeResult.ResultReport; if (InsertRecord(RecordWord)) { return(true); } else { return(false); } }
//转发报文,并获取真实服务器的响应报文--POST请求 private ResponseResult Send(Home.AnalyzeResult AnalyzeResult) { ResponseResult responseresult = new ResponseResult(); try { //添加checknum字段用于标识该请求来源于防火墙已过滤的请求 string postData = AnalyzeResult.RequestContents.ToString() + "&checknum=321"; byte[] byteArray = Encoding.UTF8.GetBytes(postData); string url = "http://mymvclogindemo.top/MVCDemo/Home"; HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(new Uri(url)); //添加请求的客户端cookie if (AnalyzeResult.RequestHeader.Cookies.Count != 0) { CookieCollection CookiesArray = new CookieCollection(); Cookie Cookie = new Cookie(); foreach (string CookieKey in AnalyzeResult.RequestHeader.Cookies.Keys) { Cookie.Name = CookieKey; Cookie.Value = AnalyzeResult.RequestHeader.Cookies[CookieKey]; CookiesArray.Add(Cookie); } webRequest.CookieContainer = new CookieContainer(); if (CookiesArray.Count > 1) { webRequest.CookieContainer.Add(CookiesArray); } } webRequest.Method = "POST"; webRequest.ContentType = AnalyzeResult.RequestHeader.ContentType; webRequest.ContentLength = byteArray.Length; Stream newStream = webRequest.GetRequestStream(); newStream.Write(byteArray, 0, byteArray.Length); newStream.Close(); //获取响应报文并格式化 HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse(); responseresult.ResponseList = response; StreamReader Message = new StreamReader(response.GetResponseStream(), Encoding.UTF8); responseresult.ResponseContents = Message.ReadToEnd(); responseresult.ResponseReport = "读取成功"; return(responseresult); } catch { responseresult.ResponseReport = "读取失败"; return(responseresult); } }
//调用方法获取GET请求的真实服务器响应 public ResponseResult GetResponseByGet(Home.AnalyzeResult AnalyzeResult) { return(SendByGet(AnalyzeResult)); }