Пример #1
0
        /// <summary>
        /// Checks, if the given domain redirects to mailinator
        /// </summary>
        /// <param name="Host">host name</param>
        /// <returns>true, if mailinator inbox</returns>
        public static bool IsMailinator(string Host)
        {
            List <uint>      Questionable_IPs = new List <uint>();
            RecordCollection RC = Dns.Lookup(Host, Dns.QueryTypes.DNS_TYPE_MX);

            if (RC == null)
            {
                return(false);
            }
            for (int i = 0; i < RC.RecordTypes.Length; i++)
            {
                if (RC.RecordTypes[i] == Dns.QueryTypes.DNS_TYPE_MX)
                {
                    Questionable_IPs.AddRange(GetRecords(RecordCollection.ToString(((Dns.DNS_MX_DATA)RC.FoundRecords[i]).pNameExchange)));
                }
            }

            foreach (uint Mailinator_IP in Mailinator_IPs)
            {
                if (Questionable_IPs.Contains(Mailinator_IP))
                {
                    return(true);
                }
            }
            return(false);
        }
Пример #2
0
        /// <summary>
        /// Gets A records from DNS
        /// </summary>
        /// <param name="Hostname">hostname to get A records from</param>
        /// <returns>List of IP addresses (as 4 byte integers)</returns>
        static uint[] GetRecords(string Hostname)
        {
            List <uint>      L  = new List <uint>();
            RecordCollection RC = Dns.Lookup(Hostname, Dns.QueryTypes.DNS_TYPE_A);

            for (int i = 0; i < RC.RecordTypes.Length; i++)
            {
                if (RC.RecordTypes[i] == Dns.QueryTypes.DNS_TYPE_A)
                {
                    L.Add(((Dns.DNS_A_DATA)RC.FoundRecords[i]).IpAddress);
                }
            }
            return(L.ToArray());
        }
Пример #3
0
        public static BMA[] getTXT(string DNS)
        {
            RecordCollection RC = null;

            try
            {
                RC = Dns.Lookup(DNS, WinAPI.DNS.Dns.QueryTypes.DNS_TYPE_TEXT);
            }
            catch
            {
                return(null);
            }
            List <BMA> entries = new List <BMA>();

            foreach (object o in RC.SubRecords)
            {
                if (o is Dns.DNS_TXT_DATA)
                {
                    string[] ss = RecordCollection.ToString(((Dns.DNS_TXT_DATA)o).pStringArray).Split(';');
                    foreach (string s in ss)
                    {
                        if (s.Contains("BM-"))
                        {
                            if (s.Contains("="))
                            {
                                entries.Add(new BMA(s.Split('=')[0], s.Split('=')[1]));
                            }
                            else
                            {
                                entries.Add(new BMA(string.Empty, s));
                            }
                        }
                    }
                }
            }
            return(entries.ToArray());
        }