📄 temp.c
字号:
#include <netdb.h> #include <stdio.h> #include <stdlib.h> #include <sys/socket.h> #include <netinet/in.h> /* 服务信息 */int main(int argc ,char **argv) { struct sockaddr_in addr; struct hostent *host; char **alias; if(argc<2) { fprintf(stderr,"Usage:%s hostname|ip..\n\a",argv[0]); exit(1); } argv++; for(;*argv!=NULL;argv++) { /* IP */ if(inet_aton(*argv,&addr.sin_addr)!=0) // 字符串IP->32位IP { host=gethostbyaddr((char *)&addr.sin_addr,4,AF_INET); // 32位IP->结构指针 printf("Address information of Ip %s\n",*argv); } else { /* 域名 */ host=gethostbyname(*argv); // 机器名->结构指针 printf("Address information of host %s\n",*argv); } if(host==NULL) { /* 不是IP和域名 */ fprintf(stderr,"No address information of %s\n",*argv); continue; } printf("Official host name %s\n",host->h_name); // 主机正式名称 printf("Name aliases:"); // 主机别名 for(alias=host->h_aliases;*alias!=NULL;alias++) printf("%s\n",*alias); printf("Ip address:"); // 主机IP for(alias=host->h_addr_list;*alias!=NULL;alias++) printf("%s\n",inet_ntoa(*(struct in_addr *)(*alias))); // 32位IP->字符串IP } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -