Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C/C++ Сетевое программирование
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.04.2012, 21:41   #11
Mid1987
Пользователь
 
Регистрация: 04.12.2009
Сообщений: 17
По умолчанию

Тут ещё на одном форуме написали, что якобы зная MAC - адрес DNS - сервера можно к нему произвольно обратиться, это каким образом?
Mid1987 вне форума Ответить с цитированием
Старый 11.04.2012, 22:16   #12
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

чушь какая-то. нужно знать только IP-адрес DNS. больше ничего не нужно

Последний раз редактировалось rpy3uH; 11.04.2012 в 22:21.
rpy3uH вне форума Ответить с цитированием
Старый 11.04.2012, 23:47   #13
Mid1987
Пользователь
 
Регистрация: 04.12.2009
Сообщений: 17
По умолчанию

Подсказали, что это делается через функцию API DnsQueryEx, нет ни у кого примера кода с этой функцией?
Mid1987 вне форума Ответить с цитированием
Старый 11.04.2012, 23:49   #14
Mid1987
Пользователь
 
Регистрация: 04.12.2009
Сообщений: 17
По умолчанию

P. S. Это не относится к MAC - адресу, это совсем другой вариант.
Mid1987 вне форума Ответить с цитированием
Старый 12.04.2012, 00:19   #15
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Цитата:
Сообщение от Mid1987 Посмотреть сообщение
Подсказали, что это делается через функцию API DnsQueryEx, нет ни у кого примера кода с этой функцией?
функция доступна только в Windows 8
rpy3uH вне форума Ответить с цитированием
Старый 12.04.2012, 00:47   #16
Mid1987
Пользователь
 
Регистрация: 04.12.2009
Сообщений: 17
По умолчанию

Да, так и есть... Но есть аналог DnsQuery - она начиная с Windows 2000 работает, не знаю почему, но на другом форуме привели именно новую фунцию. Сейчас нашел пример на MSDN с DnsQuery, собрал в Visual Studio 2010 - все работает. Когда адаптирую под Builder XE2, отпишусь.
Mid1987 вне форума Ответить с цитированием
Старый 12.04.2012, 03:46   #17
Mid1987
Пользователь
 
Регистрация: 04.12.2009
Сообщений: 17
По умолчанию

Привожу решение с помощью API - функции DnsQuery (эта функция доступна начиная с Windows 2000, в отличие от DnsQueryEx которая доступна с Windows 8), решение собиралось под Builder XE2:

Код:
#include <Windns.h>
#pragma comment (lib, "Dnsapi.lib")
 
        DNS_STATUS Status;
        PIP4_ARRAY SrvList = NULL;
        PDNS_RECORD DnsRecord;
        IN_ADDR ipaddr;
 
        SrvList = (PIP4_ARRAY) LocalAlloc(LPTR,sizeof(IP4_ARRAY));
        SrvList->AddrCount = 1;
        SrvList->AddrArray[0] = inet_addr("000.000.000.000"); // Тут задаем IP - адрес DNS - сервера
 
        Status = DnsQuery(L"google.ru", // Тут задаем адрес хоста, который надо преобразовать
                          DNS_TYPE_A,
                          DNS_QUERY_BYPASS_CACHE,
                          SrvList,
                          &DnsRecord,
                          NULL);
 
        if (Status){
            Form1->Memo1->Lines->Add("Error dns");
        } else {
            ipaddr.S_un.S_addr = (DnsRecord->Data.A.IpAddress);
            Form1->Memo1->Lines->Add(inet_ntoa(ipaddr));
            DnsRecordListFree(DnsRecord, freetype);
        }
        LocalFree(SrvList);
Оригинальный пример на MSDN:
http://support.microsoft.com/kb/831226

Последний раз редактировалось Mid1987; 12.04.2012 в 03:56.
Mid1987 вне форума Ответить с цитированием
Старый 13.04.2012, 19:55   #18
Rock-n-Rolla
Форумчанин
 
Регистрация: 11.01.2012
Сообщений: 177
По умолчанию

вообще согласно MSDN функция gethostbyname официально считается устаревшей, вместо неё надо использовать getaddrinfo или DnsQuery. Но DnsQuery более узкая и позволяет конертировать в адрес только имя домена, в то время как getaddrinfo более универсальна
progromore.i2p - первый русскоязычный портал программистов в скрытосети
Rock-n-Rolla вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
DNS Dimarik Общие вопросы .NET 3 19.04.2010 18:04
DNS компонент magsim Работа с сетью в Delphi 1 01.02.2010 00:33
Работа с DNS ImmortalAlexSan Помощь студентам 4 10.01.2010 14:30
Удаление DNS wizard68 Помощь студентам 6 11.12.2009 14:29
DNS Client ikakey Софт 0 27.03.2009 11:15