Linux socket 开发的过程中,经常会碰到根据域名进行IP转换的问题,毕竟 socket 不能很方便的对域名进行通讯。
『gethostbyname』
函数就是本次的 ‘注脚’,原型函数如下:1struct hostent *gethostbyname(const char *hostname);
返回结构体如下:1234567struct hostent { char *h_name; char **h_aliase; int h_addrtype; int h_length; char **h_addr_list;}
具体结构体成员说明:
h_name
官方域名(Official domain name)。官方域名代表某一主页,但实际上一些著名公司的域名并未用官方域名注册。h_aliase
别名,可以通过多个域名访问同一主机。同一IP地址可以绑定多个域名,因此除了当前域名还可以指定其他域名。h_addrtype
地址族,通过此成员获取IP地址的地址族(地址类型)信息,IPv4 对应 AF_INET,IPv6 对应 AF_INET6。h_length
保存IP地址长度。IPv4 的长度为4个字节,IPv6 的长度为16个字节。h_addr_list
这是最重要的成员。通过该成员以整数形式保存域名对应的IP地址。对于用户较多的服务器,可能会分配多个IP地址给同一域名,利用多个服务器进行均衡负载。
头文件
|
代码撸起来
|
|
|
|
本文作者: wettper
本文链接: http://www.web-lovers.com/c-linux-gethostbyname.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!