Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Прочитать MX record через Си в UNIX среде / 12 сообщений из 12, страница 1 из 1
18.06.2009, 17:21:07
    #36049020
Moisey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прочитать MX record через Си в UNIX среде
Здравствуйте.
Проблема такова:
Пишу простой smtp клиент на Си(не++) в Linux и нужно айпишник smtp сервера узнать. Для этого надо в MX записи это прочесть. Но какой функцией не могу найти. Функция gethostbyname() дает айпишники из А записи, но это не то что нужно. Может кто сталкиваля и знает как это решить? Под винду решений полно нашел, а вот под Линукс...
Спасибо.
...
Рейтинг: 0 / 0
18.06.2009, 17:42:30
    #36049093
Gluk (Kazan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прочитать MX record через Си в UNIX среде
MoiseyЗдравствуйте.
Проблема такова:
Пишу простой smtp клиент на Си(не++) в Linux и нужно айпишник smtp сервера узнать. Для этого надо в MX записи это прочесть. Но какой функцией не могу найти. Функция gethostbyname() дает айпишники из А записи, но это не то что нужно. Может кто сталкиваля и знает как это решить? Под винду решений полно нашел, а вот под Линукс...
Спасибо.

Запросом к DNS-серверу ?
...
Рейтинг: 0 / 0
18.06.2009, 17:51:59
    #36049109
Moisey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прочитать MX record через Си в UNIX среде
Вот нет случайно готовой функции в Си чтобы получить IP адрес smtp сервера зная лишь имя, например: gmail.com, mail.ru. Если нет, то как запрос делать к ДНС серверу чтобы получить этот IP.
...
Рейтинг: 0 / 0
18.06.2009, 17:58:19
    #36049123
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прочитать MX record через Си в UNIX среде
Думаю что в исходниках nslookup есть то, что нужно автору.
...
Рейтинг: 0 / 0
18.06.2009, 18:00:30
    #36049131
Moisey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прочитать MX record через Си в UNIX среде
Тогда сразу вопрос где достать исходники эти?
...
Рейтинг: 0 / 0
18.06.2009, 18:05:50
    #36049146
Gluk (Kazan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прочитать MX record через Си в UNIX среде
Можно еще в какон нибудь Net::DNS от Perl-а пошукать
так такие вещи как правило на Си писаны
...
Рейтинг: 0 / 0
18.06.2009, 18:11:23
    #36049154
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прочитать MX record через Си в UNIX среде
MoiseyТогда сразу вопрос где достать исходники эти?
А хрен его знает. Но думаю, что в исходниках Линукс должно быть.
...
Рейтинг: 0 / 0
18.06.2009, 23:41:46
    #36049563
avb1003
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прочитать MX record через Си в UNIX среде
MoiseyЗдравствуйте.
Проблема такова:
Пишу простой smtp клиент на Си(не++) в Linux и нужно айпишник smtp сервера узнать. Для этого надо в MX записи это прочесть. Но какой функцией не могу найти. Функция gethostbyname() дает айпишники из А записи, но это не то что нужно. Может кто сталкиваля и знает как это решить? Под винду решений полно нашел, а вот под Линукс...
Спасибо.
Сам не пробовал,но, вроде бы, Вам стоит посмотреть "adns":rpm -qvi -p adns*
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Name        : adns                         Relocations: /usr 
Version     : 1.0                               Vendor: MandrakeSoft
Release     : 6mdk                          Build Date: Сбт 23 Фев 2002 13:49:19
Install date: (not installed)               Build Host: bi.mandrakesoft.com
Group       : Networking/Other              Source RPM: adns-1.0-6mdk.src.rpm
Size        : 66902                            License: GPL
Packager    : Mandrake Linux Team <http://www.mandrakeexpert.com>
URL         : http://www.chiark.greenend.org.uk/~ian/adns/
Summary     : Advanced, easy to use, asynchronous-capable DNS client library
Description :
adns is a resolver library for C (and C++) programs. In contrast with
the existing interfaces, gethostbyname et al and libresolv, it has the
following features:
    * It is reasonably easy to use for simple programs which just want
      to translate names to addresses, look up MX records, etc.
    * It can be used in an asynchronous, non-blocking, manner. Many
      queries can be handled simultaneously
...
...
Рейтинг: 0 / 0
19.06.2009, 12:53:48
    #36050535
Ёш
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прочитать MX record через Си в UNIX среде
MoiseyВот нет случайно готовой функции в Си чтобы получить IP адрес smtp сервера зная лишь имя, например: gmail.com, mail.ru. Если нет, то как запрос делать к ДНС серверу чтобы получить этот IP.
man 3 resolver
man res_search

int res_search(const char *dname, int class, int type, unsigned char *answer, int anslen);
err = res_search (domain, C_IN, T_MX, &answer, sizeof(answer));
...
Рейтинг: 0 / 0
22.06.2009, 06:46:28
    #36052987
Moisey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прочитать MX record через Си в UNIX среде
ЁшMoiseyВот нет случайно готовой функции в Си чтобы получить IP адрес smtp сервера зная лишь имя, например: gmail.com, mail.ru. Если нет, то как запрос делать к ДНС серверу чтобы получить этот IP.
man 3 resolver
man res_search

int res_search(const char *dname, int class, int type, unsigned char *answer, int anslen);
err = res_search (domain, C_IN, T_MX, &answer, sizeof(answer));
Похоже то что нужно, только вот answer что-то не понятное в себе содержит после выполнения функции. Не знаете что там должно быть и как все таки IP получить?
...
Рейтинг: 0 / 0
22.06.2009, 09:17:03
    #36053057
3270
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прочитать MX record через Си в UNIX среде
...
Рейтинг: 0 / 0
22.06.2009, 09:19:41
    #36053059
Ёш
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прочитать MX record через Си в UNIX среде
MoiseyЁшMoiseyВот нет случайно готовой функции в Си чтобы получить IP адрес smtp сервера зная лишь имя, например: gmail.com, mail.ru. Если нет, то как запрос делать к ДНС серверу чтобы получить этот IP.
man 3 resolver
man res_search

int res_search(const char *dname, int class, int type, unsigned char *answer, int anslen);
err = res_search (domain, C_IN, T_MX, &answer, sizeof(answer));
Похоже то что нужно, только вот answer что-то не понятное в себе содержит после выполнения функции. Не знаете что там должно быть и как все таки IP получить?думаю что answer содержит ответ DNS сервера в бинарном формате описанном в RFC на DNS
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Прочитать MX record через Си в UNIX среде / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]