Available Domains Finder

February 23rd, 2008 | by programming |

Tired of looking for unregistered domain name? Use this generator written in C# to find available domains, ready to register:

using System;
using System.Text;
using System.Net;

class Domains
{
    static Random r = new Random();

    static void Main()
    {
        //Config
        const int NR_OF_DOMAINS = 10; // Number of domains to generate
        const int LENGTH_OF_DOMAINS = 4;
        const bool UPPERCASE = false;
        string[] extensions = new string[] {“com”, “net”, “org”};

        Console.WriteLine(“Checking {0} domains: \n”, (NR_OF_DOMAINS * extensions.Length));

        int domainCount = 0;
        for (int i = 1; i <= NR_OF_DOMAINS; i++)
        {
            string domain = CreateDomain(LENGTH_OF_DOMAINS, UPPERCASE);

            foreach (string extension in extensions)
            {
                Console.Write(domain + “.” + extension);

                if (CheckDomain(domain + “.” + extension))
                {
                    Console.WriteLine(” Is Available.”);
                    domainCount++;
                }
                else
                {
                    Console.WriteLine();
                }
            }
        }
        if (domainCount != 0)
            Console.WriteLine(“\n{0} available domains found.”, domainCount);
        else
            Console.WriteLine(“No domains found.”);

        Console.Read();
    }

    static bool CheckDomain(string domain)
    {
        string[] whoisWebsites = new string[]{“http://registrar.verisign-grs.com/cgi-bin/whois?whois_nic=”};
        WebClient reader = new WebClient();
        string url = whoisWebsites[rand.Next(0, whoisWebsites.Length - 1)] + domain;
        byte[] reqHTML;
        reqHTML = reader.DownloadData(url);
        UTF8Encoding objUTF8 = new UTF8Encoding();
        string contents = objUTF8.GetString(reqHTML);

        if (contents.IndexOf(“No match”) == -1 && contents.IndexOf(“Not Found”) == -1)
        {
            return false;
        }
        else
        {
            return true;
        }
    }

    static string CreateDomain(int length, bool uppercase)
    {
        string domain = null;

        for (int i = 1; i <= length; i++)
        {
            char letter = (char)r.Next(97, 123);
            domain += letter.ToString();
        }

        if (uppercase)
            domain = domain.ToUpper();

        return domain;

    }
}

Post a Comment