Получить NS запись домена C#

remy

Client
Регистрация
04.09.2011
Сообщения
9
Благодарностей
2
Баллы
3
Подскажите как получить NS запись домена через код на C#

Например скармливаю домен zennolab.com
а в ответ приходит массив с записями
ns1.cloudflare.com
ns2.cloudflare.com

или для vk.com
получит
ns1.vkontakte.ru
ns2.vkontakte.ru
ns3.vkontakte.ru
ns4.vkontakte.ru

и тд
Пробовал через библиотеку ARSoft, но она ошибки выдает какие-то даже на примерах

Буду признателен за помощь
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 163
Благодарностей
2 163
Баллы
113
ап. тоже ищу метод, гугл на этот топик ведет :-).
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 689
Баллы
113

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 021
Благодарностей
1 383
Баллы
113
C#:
string domain = "zennolab.com";
return System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo{
                FileName = "cmd.exe",
                Arguments = string.Format(@"/C nslookup -type=NS -timeout=10 {0} 8.8.8.8", domain),
                RedirectStandardOutput = true,
                UseShellExecute = false, 
                CreateNoWindow = true
            }).StandardOutput.ReadToEnd();
 
Последнее редактирование:

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 689
Баллы
113
C#:
return System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo{
                FileName = "cmd.exe",
                Arguments = string.Format(@"/C nslookup -type=ns {0}", "zennolab.com"),
                RedirectStandardOutput = true,
                UseShellExecute = false,
                CreateNoWindow = true
            }).StandardOutput.ReadToEnd();
DNS провайдера все таки лучше ставить 8.8.8.8 так как у локальных может быть неверные записи
 
  • Спасибо
Реакции: orka13 и Alexmd

7make

Client
Регистрация
25.06.2011
Сообщения
1 547
Благодарностей
1 310
Баллы
113

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с 7make какие-либо сделки.

качнуть dns zone file и все.
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 760
Благодарностей
2 398
Баллы
113
ап. тоже ищу метод, гугл на этот топик ведет :-).
К сожалению увидел эту тему с опозданием (иначе ответил бы раньше).
Короче чтобы не придумывать велосипеды, делается всё куда проще и быстрее.
Надеюсь, своим сообщением закрою данную задачу полностью.

1. Качаем DNSClient (ссылка).
2. Считываем файл с доменами.
C#:
List<string> lines = File.ReadAllLines(path, Encoding.UTF8).AsParallel().Where(x => !string.IsNullOrEmpty(x)).Select(y => y.Split(';')[0]).ToList(); // у меня здесь просто была строка домен;ip;ещё чего-то
3. Создаем клиент (он потокобезопасный, можно использовать в ParallelFor и AsParallel), добавив прежде ссылку на библиотеку
C#:
var client = new LookupClient();
4. Перебираем список вытаскивая нужные данные. Пример
C#:
var client = new LookupClient();
List<string> lines = new List<string>();
lines.Add("google.com");
lines.Add("yandex.com");
lines.Add("zennolab.com");

foreach(string domain in lines) {
    foreach (var aRecord in client.Query(domain,QueryType.NS).AllRecords.NsRecords()) { // здесь можно дёргать любые другие необходимые записи
        project.SendInfoToLog(aRecord.DomainName.ToString());
        project.SendInfoToLog(aRecord.RecordType.ToString());
        project.SendInfoToLog(aRecord.NSDName.ToString());

    }
}
87239
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 689
Баллы
113

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 760
Благодарностей
2 398
Баллы
113
  • Спасибо
Реакции: orka13 и Phoenix78

udder

Client
Регистрация
28.03.2017
Сообщения
595
Благодарностей
118
Баллы
43
К сожалению увидел эту тему с опозданием (иначе ответил бы раньше).
Короче чтобы не придумывать велосипеды, делается всё куда проще и быстрее.
Надеюсь, своим сообщением закрою данную задачу полностью.

1. Качаем DNSClient (ссылка).
2. Считываем файл с доменами.
C#:
List<string> lines = File.ReadAllLines(path, Encoding.UTF8).AsParallel().Where(x => !string.IsNullOrEmpty(x)).Select(y => y.Split(';')[0]).ToList(); // у меня здесь просто была строка домен;ip;ещё чего-то
3. Создаем клиент (он потокобезопасный, можно использовать в ParallelFor и AsParallel), добавив прежде ссылку на библиотеку
C#:
var client = new LookupClient();
4. Перебираем список вытаскивая нужные данные. Пример
C#:
var client = new LookupClient();
List<string> lines = new List<string>();
lines.Add("google.com");
lines.Add("yandex.com");
lines.Add("zennolab.com");

foreach(string domain in lines) {
    foreach (var aRecord in client.Query(domain,QueryType.NS).AllRecords.NsRecords()) { // здесь можно дёргать любые другие необходимые записи
        project.SendInfoToLog(aRecord.DomainName.ToString());
        project.SendInfoToLog(aRecord.RecordType.ToString());
        project.SendInfoToLog(aRecord.NSDName.ToString());

    }
}
Посмотреть вложение 87239
@BAZAg Спасибо за решение, но ответ приходит судя по срину в лог, а как работать с библиотекой из Zenno, чтобы домен передать в переменную и получить ответ в переменной? И не ясно как подключить библиотеку, если не затруднит, опубликуйте, пожалуйста проект :-)
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 163
Благодарностей
2 163
Баллы
113
@BAZAg ... чтобы домен передать в переменную и получить ответ в переменной?...
С такими вопросами далеко не заедете, понимаю что может новичок в C#, но лучше тогда какие-то базовые статьи\видео по "C# + Zennoposter" поискать, или гуглить типа:
C# результат в переменную site:zennolab.com
Примерочный шаблон с библиотекой прикрепляю. Но там заточено под парсинг MX записей. Переделаете на обычные исходя из того поста. Домены списком закинуть в папку [\DNSClient_MX_Parser\Input\Input_urls.txt], результат будет в [\DNSClient_MX_Parser\Output\Whois_out_26_04_2022.csv]:
 

Вложения

  • Спасибо
Реакции: zonawm и udder

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)