Я когда то столкнулся с похожей задачей.
Мне надо было выявить все 6 символьные домены в зоне .com
Действовал по такому плану:
1) Накидал на go программу, которая собрала мне все возможные комбинации, получилось ~ 2.4 млрд доменов
2) Написал на go многопоточную программу, которая опрашивала их. В первую очередь, конечно по DNS, если есть ответ по DNS, то нет смыла насиловать whois. Но с DNS тоже не все так просто, после определенного кол-ва запросов DNS начинает думать, что ее ддосят и может начать тупить. Так что я собрал список всех возможных вариаций публичных днс-серверов + то что дал провайдер и опрашивал их рандомно.
3) Если по dns не было ответа, то тогда обращался к whois, через кучу разных проксей и сокетов, ибо они банят очень быстро. Так как whois еще более капризный чем DNS. Мало того, whois может еще и обманывать, выдавать, что домен свободен, а реально он занят. И приходилось юзать API некоторых регистраторов для проверки.
Если мне память не изменяет, где-то за неделю собралась база данных.
Было это где-то 3 года назад, не знаю, может что-нибудь поменялось с тех пор.