public RootIpAddressLookup DoBulkIpLookup(List <string> ips, List <string> fieldsToUse) { var chunkedResults = new List <RootIpAddressLookup>(); var combinedIpResults = new List <IpAddressData>(); var returnResults = new RootIpAddressLookup(); var rows = ips.Count; var fullGroups = Math.Truncate(rows / 100d); var remainingGroup = (rows % 100) > 0 ? 1 : 0; var totalGroups = fullGroups + remainingGroup; if (ips.Count > 100) { var chunks = Split <string>(ips, 100); var x = chunks; foreach (var chunkList in chunks) { chunkedResults.Add(GetData(chunkList)); } foreach (RootIpAddressLookup root in chunkedResults) { var cList = root.IpAddressData; combinedIpResults.AddRange(cList); } returnResults.IpAddressData = combinedIpResults; } else { returnResults = GetData(ips); } return(returnResults); }
public void DoLookup() { dgIpResults.DataSource = null; txtIpOutput.Text = ""; var delimeter = "\t"; var sList = txtIpInput.Text.Split(new string[] { "\r\n" }, StringSplitOptions.None).ToList(); lblCountValue.Text = sList.Count.ToString(); var repo = new IpAddressRepo(); var hFields = IpApiHeaders.IpApiHeaderOptions; RootIpAddressLookup ipResults = repo.DoBulkIpLookup(sList, hFields); var headerList = ""; var hCount = hFields.Count; for (int i = 0; i < hFields.Count; i++) { var endDelimeter = "\t"; var h = hFields[i]; if (i == hFields.Count - 1) { endDelimeter = "\r\n"; } headerList += string.Format("{0}{1}", StringUtils.HeaderTextForFieldName(h), endDelimeter); //YourDataGridView.Columns.Add(New DataGridViewColumn()); } txtIpOutput.Text = string.Format("{0}", headerList); foreach (IpAddressData item in ipResults.IpAddressData) { var dnsRepo = new DnsQueryRepo(); if (cbIncludeBlacklist.Checked) { item.BlackList = dnsRepo.GetIndividualIpBlockedStatus(item.IpAddress); } txtIpOutput.Text += string.Format("{0}{13}{1}{13}{2}{13}{3}{13}{4}{13}{5}{13}{6}{13}{7}{13}{8}{13}{9}{13}{10}{13}{11}{13}{12}\r\n", item.IpAddress, item.Status, item.Country, item.RegionName, item.City, item.District, item.Zipcode, item.ISP, item.Organization, item.ASN, item.Latitude, item.Longitude, item.BlackList, delimeter ); } dgIpResults.RowsDefaultCellStyle.BackColor = Color.Ivory; dgIpResults.AlternatingRowsDefaultCellStyle.BackColor = Color.AliceBlue; dgIpResults.AutoGenerateColumns = true; dgIpResults.AutoResizeColumns(); dgIpResults.DataSource = ipResults.IpAddressData; }