Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/19: Рейтинг темы: голосов - 19, средняя оценка - 4.63
0 / 0 / 1
Регистрация: 19.01.2011
Сообщений: 16
1

Обращение к DNS - серверу

10.04.2012, 19:52. Показов 3839. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток, форумчане!
Вопрос: как в Builder обратиться к DNS - серверу (т. е. послать ему запрос в виде "google.ru") и получить от него ответ (IP адрес). Заранее благодарю!

Добавлено через 57 минут
Забыл еще написать:
надо еще как - то задавать адрес (IP) DNS сервера.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.04.2012, 19:52
Ответы с готовыми решениями:

Перенаправление DNS запросов из локальной сети к DNS серверу провайдера
Добрый день! Необходимо настроить простейший инет шлюз на freebsd и PF. Может кто сможет...

Как можно продиагностировать DNS запросы, включая обращения к кэшу, и сами запросы от DNS клиента к серверу?
Добрый день! Подскажите пожалуйста, каким образом можно в операционной системе MS Windows 7...

Привязать домен к выделенному серверу. DNS-нет
В общем такая ситуация. Я с выделенными серверами не знаком (VDS - Debian). При заказе выделенного...

Получение IP хоста через запрос к DNS серверу
Всем привет. Возникла проблема с таким заданием: получить айпи сайта по его доменному имени с...

2
Модератор
3386 / 2158 / 352
Регистрация: 13.01.2012
Сообщений: 8,378
11.04.2012, 10:07 2
Лучший ответ Сообщение было отмечено Mid1987 как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int get_addr(char *host_name)
{
    int res = -1;
 
    HOSTENT *phe = gethostbyname(host_name);
    if (phe)
        for (int i = 0; i < 4; i++)
            ((BYTE *)&res)[i] = phe->h_addr_list[0][i];
 
    return res;
}
 
    in_addr addr;
    addr.S_un.S_addr = get_addr(host_name);
    char *ip = inet_ntoa(addr);
1
0 / 0 / 1
Регистрация: 19.01.2011
Сообщений: 16
12.04.2012, 03:41  [ТС] 3
Это решение я уже нашел, тут основная проблема, то что нужно задавать адрес DNS - сервера, а gethostbyname берет его из того что знает компьютер.

Добавлено через 3 часа 8 минут
Подсказали, что это делается через функцию API DnsQueryEx, нет ни у кого примера кода с этой функцией?

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

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#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);
0
12.04.2012, 03:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.04.2012, 03:41
Помогаю со студенческими работами здесь

Обращение к серверу ajax
Подскажите пожалуйста как правильно дергать сервер, каждую секунду например, на проверку изменения...

Обращение к серверу с телефона
Подскажите, как можна настроить программу, написанную на делфи так, чтобы она обращалась к серверу...

Обращение к NTP серверу
какую команду посылать на NTP сервер, чтобы он вернул в качестве строки дату текущую? Реализовать...

Асинхронное обращение к серверу UWP
Здравствуйте. Столкнулся с такой проблемой, при первом обращении к серверу у меня приходят данные и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru