public FilteredRecords Filter(DateTime minDate = default(DateTime), DateTime maxDate = default(DateTime), string fileName = default(string), int resultType = 0, string ip = default(string), int lastRecords = -1) { FilteredRecords filteredList = new FilteredRecords(); bool isMinDateFilterActive = false; if (minDate != default(DateTime)) { isMinDateFilterActive = true; } bool isMaxDateFilterActive = false; if (maxDate != default(DateTime)) { isMaxDateFilterActive = true; } bool isNameFilterActive = false; if (fileName != default(string)) { isNameFilterActive = true; } bool isResultFilterActive = false; if (resultType != 0) { isResultFilterActive = true; } bool isIpFilterActive = false; if (ip != default(string)) { isIpFilterActive = true; } bool isLastRecordsFilterActive = false; if (lastRecords > -1) { isLastRecordsFilterActive = true; } //if (isMinDateFilterActive || isMaxDateFilterActive || isNameFilterActive || isResultFilterActive || isIpFilterActive || isLastRecordsFilterActive) // filteredList.anyFilterActive = true; //if (!isMinDateFilterActive && !isMaxDateFilterActive && !isNameFilterActive && !isResultFilterActive && !isIpFilterActive && !isLastRecordsFilterActive) // filteredList.anyFilterActive = true; //else //{ filteredList = Filter(minDate, maxDate, fileName, resultType, ip, lastRecords, isMinDateFilterActive, isMaxDateFilterActive, isNameFilterActive, isResultFilterActive, isIpFilterActive, isLastRecordsFilterActive); //} return(filteredList); }
//private int lineNumbers; //private bool isLastRecordValid = false; //public BackgroundWatcher() //{ // //recordsList = new List<OneRecord>(); // filteredRecords = new FilteredRecords(); //} public BackgroundWatcher(LogFile lf, NotifyIcon notifyIcon, MailAddress mail = null) { //recordsList = new List<OneRecord>(); filteredRecords = new FilteredRecords(); logfile = lf; notifyIcon1 = notifyIcon; //AnalysisTextBox = atextbox; isAnyDangerousIpDetected = false; //lineNumbers = 0; //DangerousIpSize = 0; dangerousRequests = new DangerousHTTPRequests(); mailAddress = mail; }
public DangerousHTTPRequests SecureFilterAndScanAllFile() { DangerousHTTPRequests dangerousRequests = new DangerousHTTPRequests(); FilteredRecords filtered = new FilteredRecords(); try { using (StreamReader sr = new StreamReader(fileName, System.Text.Encoding.Default)) { string line; //long bytesSeek = 0; while ((line = sr.ReadLine()) != null) { if (OneRecord.IsRecordCanBeCreated(line)) { OneRecord record = new OneRecord(line); //filteredList.AddRecord(record); if (DangerousHTTPRequests.isRecordLoginFailure(record)) { filtered.AddRecord(record); } } } } } catch (FileNotFoundException ioEx) { Console.WriteLine(ioEx.Message); } dangerousRequests = filtered.AttackDetector(); return(dangerousRequests); }
private void fillFilteredRecords(int n = 20) { filteredRecords = logfile.Filter(lastRecords: n); }
private FilteredRecords Filter(DateTime min, DateTime max, string _name, int _resultType, string _ip, int _lastRecords, bool isMinDateFilterActive, bool IsMaxDateFilterActive, bool isNameFilterActive, bool isResultFilterActive, bool isIpFilterActive, bool isLastRecordsFilterActive) { FilteredRecords filteredList = new FilteredRecords(); wrongRecordsList = new List <string>(); try { int lineNumbersInFile = 0; using (StreamReader sr = new StreamReader(fileName, System.Text.Encoding.Default)) { string line; while ((line = sr.ReadLine()) != null) { ++lineNumbersInFile; } } fileInfo["Колличество строк"] = lineNumbersInFile; if (!isLastRecordsFilterActive) { using (StreamReader sr = new StreamReader(fileName, System.Text.Encoding.Default)) { string line; int lineNumbers = 0; int wrongRecords = 0; while ((line = sr.ReadLine()) != null) { if (OneRecord.IsRecordCanBeCreated(line)) { OneRecord record = new OneRecord(line); bool allFiltersOK = true; if (isMinDateFilterActive) { if (!record.isRecordMinDateValid(min)) { allFiltersOK = false; } } if (IsMaxDateFilterActive) { if (!record.isRecordMaxDateValid(max)) { allFiltersOK = false; } } if (isNameFilterActive) { if (!record.isRecordFileNameValid(_name.Trim())) { allFiltersOK = false; } } if (isResultFilterActive) { if (!record.isRecordsResultTypeValid(_resultType)) { allFiltersOK = false; } } if (isIpFilterActive) { if (!record.isRecordIPValid(_ip.Trim())) { allFiltersOK = false; } } if (allFiltersOK) { filteredList.AddRecord(record); lineNumbers++; } } else { wrongRecords++; wrongRecordsList.Add(line); } } fileInfo["Выведено строк"] = lineNumbers; fileInfo["Некорректные запросы"] = wrongRecords; } } else { //int lineNumbersInFile = 0; //using (StreamReader sr = new StreamReader(fileName, System.Text.Encoding.Default)) //{ // string line; // while ((line = sr.ReadLine()) != null) // { // ++lineNumbersInFile; // } //} if (_lastRecords > lineNumbersInFile) { _lastRecords = lineNumbersInFile; } using (StreamReader sr = new StreamReader(fileName, System.Text.Encoding.Default)) { string line; int lineNumber = 0; int outputLineNumbers = 0; int wrongRecords = 0; while ((line = sr.ReadLine()) != null) { ++lineNumber; if (lineNumber >= lineNumbersInFile - _lastRecords) { if (OneRecord.IsRecordCanBeCreated(line)) { OneRecord record = new OneRecord(line); bool allFiltersOK = true; if (isMinDateFilterActive) { if (!record.isRecordMinDateValid(min)) { allFiltersOK = false; } } if (IsMaxDateFilterActive) { if (!record.isRecordMaxDateValid(max)) { allFiltersOK = false; } } if (isNameFilterActive) { if (!record.isRecordFileNameValid(_name)) { allFiltersOK = false; } } if (isResultFilterActive) { if (!record.isRecordsResultTypeValid(_resultType)) { allFiltersOK = false; } } if (isIpFilterActive) { if (!record.isRecordIPValid(_ip)) { allFiltersOK = false; } } if (allFiltersOK) { filteredList.AddRecord(record); outputLineNumbers++; } } else { wrongRecords++; wrongRecordsList.Add(line); } } } fileInfo["Выведено строк"] = outputLineNumbers; fileInfo["Некорректные запросы"] = wrongRecords; } } } catch (FileNotFoundException ioEx) { Console.WriteLine(ioEx.Message); } return(filteredList); }