Question

I have to get name server IP of my system using C language.I am using Linux machine.

I have tried.

#include <stdio.h>
#include <netinet/in.h>
#include <arpa/nameser.h>
#include <resolv.h>
 #include <sys/types.h>
#include <sys/param.h>
#include <sys/cdefs.h>

int main()
{
int res_init(void);
printf("_res.nscount %d\n",_res.nscount);
//printf("_res.nsaddr_list[0] %s\n",_res.nsaddr_list[0]);
return 0;
}

But I am getting _res.nscount as 0.Am I doing anything wrong?

Était-ce utile?

La solution

You declared res_init() instead of calling it. Try:

Int main() 
{
  res_init();
  /* ... */

However, nsaddr_list[0] isn't a string, so you won't be able to print it with printf("%s"). You'll have to use inet_ntoa() or similar to convert its sin_addr.s_addr value to a printable string.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top