public string GetDnsServer(string domain)
        {
            string Dns = string.Empty;
            try
            {
                IPAddress DefaultDns = GetDefaultDns();
                if (DefaultDns == null)
                    return string.Empty;

                Dig dig = new Dig();
                dig.resolver.TransportType = Heijden.DNS.TransportType.Tcp;
                Heijden.DNS.Response Response = dig.resolver.Query(domain, Heijden.DNS.QType.NS, Heijden.DNS.QClass.IN);

                if (Response != null)
                {
                    if (Response.header.RCODE == Heijden.DNS.RCode.NoError)
                    {
                        if (Response.Answers.Count > 0)
                            Dns = Response.Answers[0].RECORD.ToString().TrimEnd('.');
                        if (Response.Authorities.Count > 0)
                        {
                            //Dns = Response.Authorities[0].RECORD.ToString().Substring(0, Response.Authorities[0].RECORD.ToString().LastIndexOf('.'));
                            Dns = Response.Authorities[0].RECORD.ToString().Substring(0, Response.Authorities[0].RECORD.ToString().IndexOf(' ')).TrimEnd('.');
                        }
                    }
                }
            }
            catch (Exception)
            {
                Console.WriteLine("DNSServer konnte nicht gefunden werden.(DNSValidator/GetDNSServer)");
            }

            return Dns;
        }
Пример #2
0
        public MainForm()
        {
            InitializeComponent();

            SetupComboBox(typeof(QType), this.comboBox1);
            SetupComboBox(typeof(QClass), this.comboBox2);

            dig = new Dig();

            list          = new List <QuerySet>();
            QuerySetIndex = -1;

            this.checkBox1.Checked    = dig.resolver.Recursion;
            this.checkBox3.Checked    = dig.resolver.UseCache;
            this.textBox2.Text        = dig.resolver.DnsServers[0].Address.ToString();
            this.textBoxAttempts.Text = dig.resolver.Retries.ToString();
            this.textBoxTimeout.Text  = dig.resolver.TimeOut.ToString();

            Console.SetOut(new FeedbackWriter(this.textBox1));
        }
        private bool ValidateDomain(string domain)
        {
            try
            {
                //IPAddress dnsServer = null;
                //IPAddress[] dnsAddresses = Dns.GetHostAddresses(dNSServer);
                //if (dnsAddresses.Length > 0)
                //    dnsServer = dnsAddresses[0];

                Dig dig = new Dig();
                dig.resolver.DnsServer = dNSServer;
                dig.resolver.TimeOut = 500;
                dig.resolver.TransportType = Heijden.DNS.TransportType.Tcp;
                Heijden.DNS.Response Response = dig.resolver.Query(domain, Heijden.DNS.QType.A, Heijden.DNS.QClass.IN);

                if (Response != null)
                    if (Response.header.RCODE == Heijden.DNS.RCode.NoError && Response.RecordsA.Length > 0)
                        return true;

            }
            catch (Exception)
            {
                Console.WriteLine("DNSServer konnte nicht bestätigt werden (DnsValidator/ValidateDomain) k");
            }

            return false;
        }