LINUX.ORG.RU

Как указать DNS сервер для res_query?


0

1

Столкнулся с такой вот проблемой - необходимо задавать адрес DNS сервера куда будет посылаться запрос функций res_query.

Пытался сделать так:

	u_char  answer[512];
	int     n;

	res_init();

	_res.nsaddr_list[0].sin_addr.s_addr = inet_addr("8.8.8.8");
	_res.nsaddr_list[0].sin_family = AF_INET;
	_res.nsaddr_list[0].sin_port = htons(53);
	_res.nscount = 1;

	n = res_query("test.com", C_IN, T_A, answer, sizeof(answer));

	printf("%i\n", n);

т.е. чтобы запрос шел не на DNS сервера прописанные подефолту в системе, а не DNS сервер гугля. Но почему-то запрос всё равно отправляется на сервера указанные в системе.

P.S. Linux 2.6.32-32-generic (Ubuntu 10.04)



Последнее исправление: slesh (всего исправлений: 1)

Ответ на: комментарий от slesh

Это я нагуглил за 1 секунду, в сабже я не разбираюсь - ты же возьми и пропарси рассылки glibc (google://[site:sourceware.org/ml/libc-help/ resolv.conf _res] там может и пофиксили - месседж то за 2009 год аж.

adriano32 ★★★
()
Ответ на: комментарий от adriano32

Решил вопрос по другому: res_mkquery + socket(UPD) + sendto + recvfrom + close

slesh
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.