Назад | Перейти на главную страницу

программно проверить, доступен ли домен?

Используя это решение Бот? проверить, доступно ли доменное имя? Я написал быстрый сценарий (вставлен ниже) на C #, чтобы проверить, МОЖЕТ ли домен быть доступным. МНОГО результатов приходит с занятыми доменами. Похоже, что заняты все 2- и 3-буквенные домены .com, и похоже, что все 3 буквы заняты (не считая номеров, которые многие из них доступны). Есть ли команда или веб-сайт, чтобы взять мой список доменов и проверить, зарегистрированы ли они или доступны?

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();
        }
    }
}

Это тип запроса, который должен выполняться через WHOIS, и они полагаются на опубликованные записи регистратора. Некоторые TLD (например, .to) не публикуют общедоступный WHOIS. В других случаях, таких как .com.au, каждый регистратор поддерживает свой собственный WHOIS, поэтому вам необходимо выяснить, у какого регистратора зарегистрирован домен, а затем запросить его WHOIS.

Кроме того, все веб-службы WHOIS, которые я использовал, содержат капчу именно для того, чтобы люди не могли делать то, что вы пытаетесь сделать. Это происходит по многим причинам, и главная из них - остановить киберсквоттинг.

Кстати говоря, если вы делаете это с целью киберсквоттинга: а) позор вам, б) это фактически незаконно в некоторых странах и TLD.

Наконец, все это говорит о том, что для C # существует множество компонентов WHOIS. Это один Нашел случайно.