ipv6相对ipv4的变化:编程接口数据结构

来源:互联网 发布:sklearn iris数据集 编辑:程序博客网 时间:2024/06/01 20:56

1. inet_pton()  inet_ntop();  ip的字符格式与地址格式的转换

         我们可以编写与协议无关的地址转换函数:思路,就是我们写一个函数,这个函数把ipv4,ipv6地址转换函数所需的参数做为参数,然后在内部判断其sa_family域是属于ipv4,还是ipv6,用switch来分别用,inet_ntop() 对ipv6转换,inet_ntoa()对ipv4转换。 .

         例子在..lib/sock_ntop.c page上71,71页还有其他列子有关于地址比较等操作的函数。这些代码都是可以在ipv4与ipv6之间可移植的。以socke_开头的函数。


2.地址结构:struct sockaddr_in6 *. 内部元素:.sin6_family = AF_INET6域  .sin6_port 端口.sin6_addr 地址, 以及其他元素。

3.getaddrinfo()  getnameinfo() ipv4 ipv6都兼容的地址转换函数。Posix规范预警gethostbyname之类的将在新版本中不复存在。page 253.

  struct addrinfo *. freeaddrinfo() 

4.新的通用套接字地址结构:ipv4 和 ipv6都可以使用。 

  struct sockaddr_storage * , <netinet/in.h>

5.in6addr_any;替换了INADDR_ANY

end:其实可以通过71页所告诉的lib目录下的那些通用函数,我们根据看switch的不同,不就知道了ipv4与ipv6的区别了吗。此博慢慢更吧。

又不让吃鸡!又不让吃鸡!又不让吃鸡!有点事就不让吃鸡!丢不丢人!丢不丢鸡!你让鸭怎么看鸡?让大鹅怎么看鸡?让鸡今后在家禽界怎么混?有流感就让人板蓝根,板蓝根,板蓝根!为嘛不直接给鸡吃板蓝根!