我是 Internet 编程的新手,我正在尝试使用 gethostbyname()
函数。当我向 gethostbyname 函数输入诸如“www.yahoo.com”的字符串时,它工作正常,但是当我输入一个 char 数组时,它总是返回一个空缓冲区。
char hostname[100];
struct hostent* h;
gethostname(hostname, sizeof hostname );
printf("Hostname: %s\n", hostname);
h = gethostbyname(hostname);
知道如何解决这个问题吗?
最佳答案
您的服务器无法自行解析。 “修复”此问题的最常见方法是将其自己的名称放入其主机文件中。虽然出于各种原因这是一个好主意,但根本问题确实应该得到解决。
- DNS 搜索列表通常应该设置为包含主机名的域名 - 或者 - 主机名本身应该是完全限定的。
- 应为主机正确设置 DNS。
这使得它根本不是真正的 C 问题,而是服务器配置问题。然后关闭它。
关于c - gethostbyname() 函数返回空缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33747665/