Загрузка данных


const dns = require('dns');

// Функция для генерации списка поддоменов
const generateSubdomains = function(length) {
    const charset = 'abcdefghijklmnopqrstuvwxyz'.split('');
    let subdomains = charset;
    let subdomain;
    let letter;
    let temp;

    for (let i = 1; i < length; i++) {
        temp = [];
        for (let k = 0; k < subdomains.length; k++) {
            subdomain = subdomains[k];
            for (let m = 0; m < charset.length; m++) {
                letter = charset[m];
                temp.push(subdomain + letter);
            }
        }
        subdomains = temp;
    }
    return subdomains;
}

// Генерируем список поддоменов длиной до 3 символов (чтобы не ждать слишком долго)
const subdomains = generateSubdomains(3);

const promises = [];

// Перебираем поддомены и делаем DNS-запросы
subdomains.forEach((subdomain) => {
    promises.push(new Promise((resolve) => {
        // ЗАМЕНИЛИ mega-bank.com НА dns-shop.ru
        dns.resolve(`${subdomain}.dns-shop.ru`, function (err, ip) {
            return resolve({ subdomain: subdomain, ip: ip });
        });
    }));
});

// Выводим результаты
Promise.all(promises).then(function(results) {
    let found = false;
    results.forEach((result) => {
        if (result.ip) {
            console.log(`Найден поддомен: ${result.subdomain}.dns-shop.ru -> ${result.ip}`);
            found = true;
        }
    });
    if (!found) {
        console.log("Новых поддоменов не найдено.");
    }
});