地址转换函数在ASCII字符串与网络字节序的二进制值之间转换网际地址。
inet_pton和inet_ntop函数
这两个函数是随IPv6出现的新函数,对于IPv4地址和IPv6地址都适用。函数名中p和n分别代表表达和数值。
地址的表达格式通常是ASCII字符串,数值格式则是存放到套接字地址结构中的二进制值。
family参数既可以是AF_INET,也可以是AF_INET6。如果以不被支持的地址族作为family参数,这两个函数就都返回一个错误,并将errno置为EAFNOSUPPORT。
第一个函数尝试转换由strptr指针所指向的字符串,并通过addrptr指针存放二进制结果。若成功return 1,否则如果对所指定的family而言输入的字符串不是有效的表达格式,那么返回值为0。
第二个函数执行相反的转换,从数值格式转换为表达格式。len参数是目标存储单元的大小,以免该函数溢出其调用者的缓冲区。为有助于指定该大小,在<netinet/in,h>头文件中有如下定义,
如果len太小,不足以容纳表达格式的结果(包括结尾的空字符),那么返回一个空指针,并置errno为ENOSPC。
调用者必须为第二个函数的strptr分配内存单元。
网友评论