⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hostent3.c

📁 unix网络编程卷1:套接口API的全书源码
💻 C
字号:
#include	"unp.h"void	pr_ipv4(char **);intmain(int argc, char **argv){	char			*ptr, **pptr;	struct hostent	*hptr;	while (--argc > 0) {		ptr = *++argv;		if ( (hptr = gethostbyname(ptr)) == NULL) {			err_msg("gethostbyname error for host: %s: %s",					ptr, hstrerror(h_errno));			continue;		}		printf("official host name: %s\n", hptr->h_name);		for (pptr = hptr->h_aliases; *pptr != NULL; pptr++)			printf("	alias: %s\n", *pptr);		switch (hptr->h_addrtype) {		case AF_INET:			pr_ipv4(hptr->h_addr_list);			break;		default:			err_ret("unknown address type");			break;		}	}	exit(0);}/* * Print the array of IPv4 addresses that is returned. * Also call gethostbyaddr_r() for each IP address and print the name. *//* begin pr_ipv4 */voidpr_ipv4(char **listptr){	struct in_addr	inaddr;	struct hostent	*hptr, hent;	char			buf[8192];	int				h_errno;	for ( ; *listptr != NULL; listptr++) {		inaddr = *((struct in_addr *) (*listptr));		printf("	IPv4 address: %s", Inet_ntoa(inaddr));		if ( (hptr = gethostbyaddr_r((char *) &inaddr, sizeof(struct in_addr),									 AF_INET, &hent,									 buf, sizeof(buf), &h_errno)) == NULL)			printf("    (gethostbyaddr failed: %s)\n", hstrerror(h_errno));		else if (hptr->h_name != NULL)			printf("    name = %s\n", hptr->h_name);		else			printf("    (no hostname returned by gethostbyaddr)\n");	}}/* end pr_ipv4 */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -