分类:
2013-01-04 15:39:15
原文地址:inet_pton源代码的分析(一) 作者:haicg
这个函数的功能:将IP地址从字符串格式转换成网络地址格式,支持Ipv4和Ipv6.
函数原型: static int inet_pton(int af, const char *src,void *dst)
af:address family(协议族),支持的协议族有下面几种:
AF_INET Inetnet的Ipv4协议
AF_INET Inetnet的Ipv6协议
src:是个指针,指向保存IP地址字符串形式的字符串。
dst:指向存放网络地址的结构体的首地址
int
inet_pton(af, src, dst)
int af;
const char *src;
void *dst;
{
switch (af) {
case AF_INET:
return (inet_pton4(src, dst));
case AF_INET6:
return (inet_pton6(src, dst));
default:
__set_errno (EAFNOSUPPORT);
return (-1);
}
/* NOTREACHED */
}
这部分代码就是通过af这个参数来判断你输入的是Ipv4还是Ipv6,然后调用对应的转换函数inet_pton4(src, dst)和inet_pton6(src, dst)。
下面一篇是对其中IPV4 部分的代码进行详细的解释与分析。