gethostbyname和gethostbyaddr】的更多相关文章

名字和数值地址间进行转换的函数:gethostbyname和gethostbyaddr在主机名字与IPv4地址之间进行转换.getservbyname和getservbyport在服务器名字和端口号之间进行转换.还有两个协议无关的转换函数:getaddrinfo和getnameinfo,分别用于主机名字和IP地址之间以及服务名字和端口之间的转换. 1.gethostbyname函数 通过传入域名或者主机名,返回一个指向hostent结构的指针,该结构中含有所查找主机的所有IPv4地址.这个函数的…
一.gethostbyname函数原型 #include <netdb.h> struct hostent *gethostbyname(const char *ghostname); 返回:成功返回非空指针,出错为NULL且设置h_errno 二.hostent结构 struct hostent { char *h_name; /* official name of host */ char **h_aliases; /* pointer to array of pointers to al…
域名转换 #include <netdb.h> struct hostent *gethostbyname(const char *name); 参数: name: 执行主机名的指针 返回值: 返回一个hostent指针 struct hostent { char *h_name; // 表示主机的规范名 char **h_aliases; // 表示主机的别名,别名可能有多个 int h_addrtype; // 表示的是主机ip地址的类型, ipv4 AF_iNET 或 ipv6 AFIN…
一.gethostname,gethostbyname的用法 这两个函数可以用来获取主机的信息.gethostname:获取主机的名字gethostbyname:通过名字获取其他的信息(比如ip) 1.gethostname:man手册里面的解释(部分):       #include <unistd.h>       int gethostname(char *name, size_t len);       int sethostname(const char *name, size_t…
一.在前面讲过的最简单的回射客户/服务器程序中,一个客户端即一个进程,只会发起一个连接,只要稍微修改一下就可以让一个客户端发起多个连 接,然后只利用其中一个连接发送数据. 先来认识一个函数getsockname #include <sys/socket.h>   int getsockname(int sockfd, struct sockaddr *addr, socklen_t *addrlen); 利用此函数可以得到某连接sockfd的地址信息,如ip地址和端口,这可以帮助我们判断发起了…
TCPIP DNS  域名系统 DNS 是一个应用于TCP/IP应用程序的分布式数据库,它提供主机名字和IP地址之间的转换及有关电子邮件的选路信息. 对DNS的访问是通过一个地址解析器来完成的,在Unix主机中,解析器主要通过两个函数 gethostbyname 和 gethostbyaddr . DNS的层次组织 DNS的名字空间和Unix的文件系统相似,也具有层次结构. 树的根是没有任何标识的特殊结点,每个结点有一个至多63个字符长的标识,标识不区分大小写.命名树上任何一个结点的域名就是将从…
gethostbyname和gethostbyaddr这两个函数仅仅支持IPv4,getaddrinfo函数能够处理名字到地址以及服务到端口这两 种转换,返回的是一个sockaddr结构的链表而不是一个地址清单.这些sockaddr结构随后可由套接口函数直接使用.如此以 来,getaddrinfo函数把协议相关性安全隐藏在这个库函数内部.应用程序只要处理由getaddrinfo函数填写的套接口地址结构.该函数在 POSIX规范中定义了. 1. addrinfo结构定义在头文件netdb.h中:s…
注意:结构体之间不能直接进行强制转换, 必须先转换成指针类型才可以进行结构体间的类型转换, 这里需要明确的定义就是什么才叫强制转换. 强制转换是将内存中一段代码以另一种不同类型的方式进行解读, 因此转换的空间必须与源空间一一对应. 而结构体则是由不固定的多种类型变量组合而成, 因此强制转换时并不确定原格式与目标格式确定的对应关系, 例如一个结构体为3个变量, 而另一个则为2个, 那么就无法确定如何分配. 因此最简单的让计算机可以理解的方式就是先将结构体转换成指针, 然后将指针转换成目标格式, 再…
相关结构 //下边这两个结构定义在<sys/types.h>里 //一般的地址结构,只能用于覆盖(把其他地址转换为此类型),且只能引用该地址的sa_family字段 struct sockaddr { unsigned char sa_len; //total length,整个结构体的长度,旧版本没有 unsigned short sa_family; //地址族 char sa_data[14]; //地址的值 //TCP/IP使用的地址结构 struct sockaddr_in { un…
Squid学习笔记 1.安装前的配置 编译安装之前需要校正的参数主要包括File Descriptor和Mbuf Clusters. 1.File Descriptor 查看文件描述符的限制数目: ulimit –n 调整文件描述符的数目需要3步: step 1,编辑系统头文件/usr/include/bits/types.h define __FD_SIZIEFD 8192 step 2,调整内核的FD限制数目 echo 8192 > /proc/sys/fs/file-max step 3,…