📄 p12-2.c
字号:
#include <netinet/in.h>#include <arpa/inet.h>#include <unistd.h>#include <netdb.h>#include <stdio.h>int main(int argc, char *argv[]){ char *host, **names, **addrs; struct hostent *hostinfo; /* 设置主机为命令行参数指定的名字或程序运行所在的机器名字 */ if(argc == 1) { char myname[256]; gethostname(myname, 255); host = myname; } else host = argv[1]; /* 获取主机地址信息 */ hostinfo = gethostbyname(host); if(!hostinfo) { fprintf(stderr, "cannot get info for host: %s\n", host); exit(1); } /* 报告它的正式名和别名 */ printf("results for host %s:\n", host); printf("Official name: %s\n", hostinfo -> h_name); printf("\t Aliases:"); names = hostinfo -> h_aliases; while(*names) { printf(" %s", *names); names++; } printf("\n"); /* 如果该主机没有IP地址,警告并退出 */ if(hostinfo -> h_addrtype != AF_INET) { fprintf(stderr, "not an IP host!\n"); exit(1); } /* 否则,报告IP地址 */ addrs = hostinfo -> h_addr_list; while(*addrs) { printf("\t address: %s", inet_ntoa(*(struct in_addr *)*addrs)); addrs++; } printf("\n"); exit(0);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -