使用C语言命名linux机器的服务器IP
我必须使用C语言获取我的系统的名称服务器IP。我使用的是Linux机器 我试过了使用C语言命名linux机器的服务器IP,c,linux,dns,nameservers,C,Linux,Dns,Nameservers,我必须使用C语言获取我的系统的名称服务器IP。我使用的是Linux机器 我试过了 #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 mai
#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;
}
#包括
#包括
#包括
#包括
#包括
#包括
#包括
int main()
{
int res_init(无效);
printf(“\u res.nscount%d\n”,\u res.nscount);
//printf(“\u res.nsaddr\u list[0]%s\n”,\u res.nsaddr\u list[0]);
返回0;
}
但是我得到了\u res.nscount
作为0
。我做错了什么吗?您声明了res\u init()而不是调用它。尝试:
Int main()
{
res_init();
/* ... */
但是,nsaddr_列表[0]不是字符串,因此无法使用printf(“%s”)打印它。您必须使用inet_ntoa()或类似工具将其sin_addr.s_addr值转换为可打印字符串。您声明了res_init(),而不是调用它。尝试:
Int main()
{
res_init();
/* ... */
但是,nsaddr_列表[0]不是字符串,因此无法使用printf(“%s”)打印它。您必须使用inet_ntoa()或类似工具将其sin_addr.s_addr值转换为可打印字符串。您声明了res_init(),而不是调用它。尝试:
Int main()
{
res_init();
/* ... */
但是,nsaddr_列表[0]不是字符串,因此无法使用printf(“%s”)打印它。您必须使用inet_ntoa()或类似工具将其sin_addr.s_addr值转换为可打印字符串。您声明了res_init(),而不是调用它。尝试:
Int main()
{
res_init();
/* ... */
但是,nsaddr_列表[0]不是字符串,因此无法使用printf(“%s”)打印它。您必须使用inet_ntoa()或类似工具将其sin_addr.s_addr值转换为可打印字符串。在
/etc/resolv.conf
中有什么内容?在你的问题中添加cat/etc/resolv.conf
。你在/etc/resolv.conf
中有什么?在你的问题中添加cat/etc/resolv.conf
。你在/etc/resolv.conf
中有什么?在你的问题中添加cat/etc/resolv.conf
。你在/etc/resolv.conf
中有什么?在问题中添加cat/etc/resolv.conf
。