域名解析函数 gethostbyname

本文介绍如何使用gethostbyname函数进行域名解析,并详细解释了该函数的使用方法及返回值,最后通过一个示例展示了如何将域名转换为IP地址。

在实现TCP/UDP编程的时候,服务端绑定的IP地址是点分十进制的,如124.222.215.205,如果提供的是域名,此时我们需要将域名转换成点分十进制的IP地址,这个过程就是 “ 域名解析 ”,实现域名转换的函数就是 gethostbyname。


目录

1、gethostbyname

2、hostent结构体成员 h_addr_list 

3、使用 gethostbyname 函数解析域名

(1) 获取到主机相关信息

(2) 将主机结构体信息中的网络字节序IP转换成本地字节序IP

(3) 完整代码


1、gethostbyname

gethostbyname 函数的作用是获取主机的相关信息,这里的相关信息就包含主机的IP地址。我们需要重点了解的是这个函数的返回值。

 参数name:输入域名或者IP地址

返回值:失败返回NULL,同时 h_errno 会被设置,注意普通函数报错设置的是errno,gethostbyname 函数出错设置的是herror,我们可以通过 hstrerror 函数来获取h_errno对应的错误信息。

成功返回一个结构体,主机的IP地址就放在最后一个参数 h_addr_list 中,h_addr_list 中存放的IP地址是32位网络字节序的整数。

struct hostent {
    char  *h_name;            /* official name of host */
    char **h_aliases;         /* alias list */
    int    h_addrtype;        /* host a
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值