public ModelsCreate(LogInfo logInfo, Writer <LogInfo> writerLogInfo, Writer <IpAddressCompany> writerIpAddress, IpAddressCompany ipAddressCompany, InfoAboutFile infoAboutFile) { this.infoAboutFile = infoAboutFile; this.ipAddressCompany = ipAddressCompany; this.logInfo = logInfo; this.writerLogInfo = writerLogInfo; this.writerIpAddress = writerIpAddress; }
private IpAddressCompany GetOwner(string content, string item, IpAddressCompany ipAddressCompany) { XmlDocument xmlDocument = new XmlDocument(); xmlDocument.LoadXml(content); var orgName = xmlDocument.InnerText; ipAddressCompany.IpAddress = item; ipAddressCompany.Company = orgName; return(ipAddressCompany); }
static void Main(string[] args) { const string pathToLogFile = @"../../LogIsHere/tariscope.access.log"; List <string> ipList = new List <string>(); List <string> fileNameList = new List <string>(); LogInfo logInfo = new LogInfo(); IpAddressCompany ipAddressCompany = new IpAddressCompany(); InfoAboutFile infoAboutFile = new InfoAboutFile(); Writer <LogInfo> writerLogInfo = new Writer <LogInfo>(new LogFileContext()); Writer <IpAddressCompany> writerIpAddress = new Writer <IpAddressCompany>(new LogFileContext()); ModelsCreate <LogInfo> create = new ModelsCreate <LogInfo>(logInfo, writerLogInfo, writerIpAddress, ipAddressCompany, infoAboutFile); create.CreatModel(pathToLogFile); }
private async Task GetOwnersIpsAsync(List <string> list, Writer <IpAddressCompany> writerIpAddress, IpAddressCompany ipAddressCompany) { Stopwatch sw = Stopwatch.StartNew(); foreach (var item in list) { HttpClient client = new HttpClient(); var response = await client.GetAsync(string.Format("http://ip-api.com/xml/{0}?fields=org", item)); response.EnsureSuccessStatusCode(); var content = await response.Content.ReadAsStringAsync(); writerIpAddress.WriteToDb(GetOwner(content, item, ipAddressCompany)); Thread.Sleep(400); } sw.Stop(); Console.WriteLine("record IpAddress is done"); }