host2ip.c
来自「RTP 实现的工具」· C语言 代码 · 共 42 行
C
42 行
#include <sys/types.h>#include <sys/socket.h> /* struct sockaddr */#include <netdb.h> /* gethostbyname() */#include <netinet/in.h> /* sockaddr_in */#include <arpa/inet.h> /* inet_addr() */#include <rpcsvc/ypclnt.h> /* YP */static char rcsid[] = "$Id: host2ip.c,v 1.2 1995/07/13 18:03:31 hgs Exp $";/** Return IP address given host name 'host'.* If 'host' is "", set to INADDR_ANY.*/struct in_addr host2ip(char *host){ struct in_addr in; register struct hostent *hep; /* Check whether this is a dotted decimal. */ if (!host || *host == '\0') { in.s_addr = INADDR_ANY; } else if ((in.s_addr = inet_addr(host)) != -1) { } /* Attempt to resolve host name via DNS. */ else if ((hep = gethostbyname(host))) { in = *(struct in_addr *)(hep->h_addr_list[0]); } /* As a last resort, try YP. */ else { static char *domain = 0; /* YP domain */ char *value; /* key value */ int value_len; /* length of returned value */ if (!domain) yp_get_default_domain(&domain); if (yp_match(domain, "hosts.byname", host, strlen(host), &value, &value_len) == 0) { in.s_addr = inet_addr(value); } } return in;} /* host2ip */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?