1 / 13
文档名称:

IPv6进阶.pptx

格式:pptx   大小:86KB   页数:13页
下载后只包含 1 个 PPTX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

IPv6进阶.pptx

上传人:wxc6688 2021/1/21 文件大小:86 KB

下载得到文件列表

IPv6进阶.pptx

文档介绍

文档介绍:IPv6进阶
目录A-IPv6编程







-协议栈
协议栈框架
IPv4/IPv6框架-Socket
Socket参数
IPv4
IPv6
AF_INET
AF_INET6
PF_INET
PF_INET6
IN_ADDR_ANY
Inaddr_any6
IPv4/IPv6框架-数据结构
数据结构
IPv4
IPv6
Sock_addr
Sockaddr_storage
In_addr
In6_addr
Sockaddr_in
Sockaddr_in6
hostent
addinfo
Sin_len
Sin6_len
Sin_family
Sin6_family
Sin_port
Sin6_port
Sin_addr
Sin6_addr
S_addr
S6_addr
IPv4/IPv6框架-解析函数
解析函数
IPv4
IPv6
名字到地址
Inet_aton
Inet_addr
Inet_pton
Inet_ntoa
Inet_ntop
地址解析
Gethostbyname
gethostbyaddr
Getipnodebyname
Getipnodebyaddr
Getnameinfo
getaddrinfo

名字到索引
unsigned int if_nametoindex(const char *ifname)
索引到名字
char *if_indextoname(unsigned int ifindex, char *ifname)
查询所有接口和名字
struct if_nameindex *if_nameindex(void)
释放内存
void if_freenameindex(struct if_nameindex *ptr);

IPV6_FLOWINFO
IPV6_UNICAST_HOPS
多播控制
IPV6_MULTICAST_IF
IPV6_MULTICAST_HOPS
IPV6_MULTICAST_LOOP
IPV6_ADD_MEMBERSHIP
IPV6_DROP_MEMBERSHIP
IPV6_MTU
IPV6_V6ONLY
……

名字到地址
struct hostent *getipnodebyname(const char *name, int af, int flags int *error_num);
地址到名字
struct hostent *getipnodebyaddr(const void *src, size_t len, int af, int *error_num);
内存释放
void freehostent(struct hostent *ptr)
协议无关的节点名称和业务名称转换
int getaddrinfo(const char *nodename, const char *servname,
const struct addrinfo *hints,
struct addrinfo **res);
void freeaddrinfo(struct addrinfo *ai);
char *gai_strerror(int ecode);
Socket地址结构到节点名称和业务名称转换
int getnameinfo(const struct sockaddr *sa, socklen_t salen,
char *host, size_t hostlen,
char *serv, size_t servlen,
int flags);

IPv4
inet_addr() / inet_ntoa()
IPv4/IPv6兼容
int inet_pton(int af, const char *src, void *dst);
const char *inet_ntop(int af, const void *src,
char *dst, size_t size);