programaticamente verificar se um domínio está disponível?

1

Usando esta solução Bot? verifique se um nome de domínio é availible? Eu escrevi um script rápido (colado abaixo) em c # para verificar se o domínio pode estar disponível. Muitos resultados surgem com domínios tomados. Parece que todos os domínios .com de 2 e 3 letras são tirados e parece que todas as 3 letras foram tiradas (não incluindo números que muitos estão disponíveis). Existe um comando ou site para levar minha lista de domínios e verificar se eles estão registrados ou disponíveis?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.Text.RegularExpressions;
using System.Diagnostics;
using System.IO;

namespace domainCheck
{
    class Program
    {
        static void Main(string[] args)
        {
            var sw = (TextWriter)File.CreateText(@"c:\path\aviliableUrlsCA.txt");
            int countIndex = 0;
            int letterAmount=3;

            char [] sz = new char[letterAmount];
            for(int z=0; z<letterAmount; z++)
            {
                sz[z] = '0';
            }
            //*/
            List<string> urls = new List<string>();
            //var sz = "df3".ToCharArray();
            int i=0;
            while (i <letterAmount)
            {
                if (sz[i] == '9')
                    sz[i] = 'a';
                else if (sz[i] == 'z')
                {
                    if (i != 0 && i != letterAmount - 1)
                        sz[i] = '-';
                    else
                    {
                        sz[i] = 'a';
                        i++;
                        continue;
                    }
                }
                else if (sz[i] == '-')
                {
                    sz[i] = 'a';
                    i++;
                    continue;
                }
                else
                    sz[i]++;
                string uu = new string(sz);
                string url = uu + ".ca";
                Console.WriteLine(url);
                Process p = new Process();
                p.StartInfo.UseShellExecute = false;
                p.StartInfo.RedirectStandardError = true;
                p.StartInfo.RedirectStandardOutput = true;
                p.StartInfo.FileName = "nslookup ";
                p.StartInfo.Arguments = url;
                p.Start();
                var res = ((TextReader) new StreamReader( p.StandardError.BaseStream)).ReadToEnd();
                if (res.IndexOf("Non-existent domain") != -1)
                {
                    sw.WriteLine(uu);
                    if (++countIndex >= 100)
                    {
                        sw.Flush();
                        countIndex = 0;
                    }
                    urls.Add(uu);
                    Console.WriteLine("Found domain {0}", url);
                }
                i = 0;
            }
            Console.WriteLine("Writing out list of urls");
            foreach (var u in urls)
                Console.WriteLine(u);
            sw.Close();
        }
    }
}
    
por Community 04.01.2010 / 02:05

1 resposta

2

Esse é o tipo de solicitação que deve ser feito por meio de um WHOIS e eles dependem de entradas de registradores publicadas. Alguns TLDs (como .to) não publicam um WHOIS público. Outros, como .com.au, cada registrador mantém seu próprio WHOIS, portanto, é necessário descobrir em qual registrador o domínio está registrado e, em seguida, consultar seu WHOIS.

Além disso, todos os serviços WHOIS baseados na web que eu usei apresentam um captcha, exatamente para impedir que as pessoas façam o que você está tentando fazer. Isto é por muitas razões, e uma das grandes é impedir o ciber-agachamento.

Falando nisso, se você está fazendo isso com a intenção de ciber-cócoras: a) vergonha, b) isso é ilegal em alguns países e TLDs.

Finalmente, tudo isso dito, há muitos componentes WHOIS para C #. Este é um eu encontrei aleatoriamente.

    
por 04.01.2010 / 02:32