#include <stdio.h>
#include <netdb.h>
#include <arpa/inet.h>
int main() {
struct hostent *host;
const char *hostname = "www.example.com";
// 使用 gethostbyname 函数获取主机信息
host = gethostbyname(hostname);
if (host == NULL) {
fprintf(stderr, "gethostbyname failed\n");
return 1;
}
// 打印主机的官方名称
printf("Official hostname: %s\n", host->h_name);
// 打印所有别名
for (char **alias = host->h_aliases; *alias != NULL; alias++) {
printf("Alias: %s\n", *alias);
}
// 打印所有 IP 地址
for (int i = 0; host->h_addr_list[i] != NULL; i++) {
printf("IP Address: %s\n", inet_ntoa(*(struct in_addr *)host->h_addr_list[i]));
}
return 0;
}
<netdb.h> 和 <arpa/inet.h> 是必要的,因为 gethostbyname 和 inet_ntoa 函数定义在这两个头文件中。const char *hostname = "www.example.com"; 定义了要查询的主机名。gethostbyname:该函数返回一个指向 hostent 结构的指针,其中包含有关主机的信息。如果查询失败,则返回 NULL。inet_ntoa 将二进制 IP 地址转换为点分十进制字符串格式。希望这段代码和解释对你有帮助!
上一篇:linux setenv
下一篇:linux 查看进程id
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站