Beispiel #1
0
        private void _btnInitSubdomain_Click(object sender, EventArgs e)
        {
            DomainController    domainController    = new DomainController();
            SubdomainController subdomainController = new SubdomainController();
            DomainFindResult    findResult          = domainController.FindAll();

            List <string> knownSubdomains   = new List <string>();
            List <string> knowndbSubdomains = new List <string>();

            foreach (Domain domainItem in findResult.Items)
            {
                string domain       = domainItem.DomainName;
                string existingFile = Path.Combine(@"C:\Alternative\Existing", domain.Replace(".", "") + ".txt");
                if (File.Exists(existingFile))
                {
                    knownSubdomains = File.ReadAllLines(existingFile).ToList();
                }

                knownSubdomains = knownSubdomains.Select(x => x.Replace("." + domainItem.DomainName, "")).ToList();

                SubdomainFindResult subDomainFindResult = subdomainController.FindByDomain(domainItem.DomainId);
                if (subDomainFindResult.Error)
                {
                    MessageBox.Show(subDomainFindResult.Message);
                }

                knowndbSubdomains = subDomainFindResult.Items.Select(x => x.SubdomainName).ToList();

                List <string> inList1ButNotList2 = (from o in knownSubdomains
                                                    join p in knowndbSubdomains on o equals p into t
                                                    from od in t.DefaultIfEmpty()
                                                    where od == null
                                                    select o).ToList <string>();

                foreach (string newItem in inList1ButNotList2)
                {
                    Subdomain sub = new Subdomain();

                    sub.DomainId      = domainItem.DomainId;
                    sub.DateFound     = DateTime.Now;
                    sub.FoundType     = "scanner";
                    sub.SubdomainName = newItem;

                    subdomainController.Insert(sub);
                }
            }
        }
Beispiel #2
0
        private SubdomainFindResult GenericFind(string whereClause, List <DbField> parameters)
        {
            SubdomainFindResult result = new SubdomainFindResult();

            try
            {
                DbAccessor connection = new DbAccessor();
                AddAccessorSelectors(connection);

                if (!String.IsNullOrEmpty(whereClause))
                {
                    connection.SetWhereClause(whereClause, parameters);
                }
                List <string> tables = new List <string>();
                tables.Add("sub_domain");

                DataView dataView = connection.FindWhere(tables);

                foreach (DataRowView row in dataView)
                {
                    Subdomain subdomain = DataRowToSubdomain(row);
                    result.Items.Add(subdomain);
                }
            }
            catch (Exception ex)
            {
                result.Error   = true;
                result.Message = ex.Message;
                if (ex.InnerException != null)
                {
                    result.Message += " Inner: " + ex.InnerException.Message;
                }
            }

            return(result);
        }