原文:https://beej.us/guide/bgnet/html/#jumping-from-ipv4-to-ipv6

4. 从IPv4到IPv6

但是我要知道从当前的代码变更为工作在IPv6上!告诉我!

好好~~

说了这么多,我们就是讲他。

  1. 首先,请使用getaddrinfo()来获得 struct sockeaddr的信息,来替代我们的封装。这将使你的程序代码与IP版本无关,以便我们的后续步骤。
  2. 在任何硬编码的地方,请使用其它函数代替。
  3. 更改 AF_INET 为 AF_INET6
  4. 更改 PF_INET 为 PF_INET6
  5. 赋值为 INADDR_ANY 的变更为 in6 addr_any。
struct sockaddr_in sa;
struct sockaddr_in6 sa6;sa.sin_addr.s_addr = INADDR_ANY;  // use my IPv4 address
sa6.sin6_addr = in6addr_any; // use my IPv6 address

当我们声明struct in6_addr的时候,也能使用IN6ADDR_ANY_INIT来初始他。像下面:

struct in6_addr ia6 = IN6ADDR_ANY_INIT;
  1. 使用 struct sockaddr_in6 来替换 struct sockaddr_in。因为在上一版本中没有sin6_zero这个字段。
  2. 使用 struct in6_addr 替换 struct in_addr。
  3. 使用 inet_pton() 替换 inet_aton()inet_addr();
  4. 使用 inet_ntop() 替换 inet_ntoa();
  5. 使用 getaddrinfo() 替换 gethostbyname();
  6. 使用 getnameinfo() 替换 gethostbyaddr();   虽然 gethostbyaddr() 也能工作在IPv6上。
  7. 使用IPv6的组播(multicast) 替换 INADDR_BROADCAST。

就这样!

4. 从IPv4到IPv6相关推荐

  1. 记录一次nginx升级,支持ipv4和ipv6访问https

    项目要求,需要让现有网站项目支持https,并同时支持ipv6访问,经过分析,现在nginx版本较老,所以决定升级nignx,并且同步配置https和ipv6. 升级准备 服务器网络环境需要支持ipv ...

  2. 漫话:全球 IPv4 地址正式耗尽?是时候说说到底什么是IPv4和IPv6了!

    2019年11月25日,负责英国.欧洲.中东和部分中亚地区互联网资源分配的欧洲网络协调中心(RIPE NCC)宣布,其最后的 IPv4 地址空间储备池在 11 月 25 日 UTC + 1 15:35 ...

  3. IPv6相比IPv4在那些方面做出了改进?IPv4 to IPv6过渡的三种tunnel技术各自的特性...

    改进 地址空间的扩容,地址容量为2^128(或(43亿)^4) 配置更加简单,支持非DHCP自动配置地址: 层次化网络结构,每个地区使用相同前缀的地址范围,更加容易管理: 报头格式简单灵活,去除了IP ...

  4. 【计算机网络】网络层 : 总结 ( 功能 | 数据交换 | IP 数据报 | IPv4 地址 | IPv6 地址 | 路由选择协议 | 路由算法 )★★★

    文章目录 一.网络层功能 二.数据交换方式 ★ 三.IP 数据报 ★ 四. IPv4 地址 ★★ 1 . IP 地址 发展 : 2 . 分类 IP 地址 3 . NAT 转换 4 . 子网划分 5 . ...

  5. 【计算机网络】网络层 : IPv6 协议 ( IPv6 数据包格式 | IPv6 地址表示 | IPv6 地址类型 | IPv4 与 IPv6 协议对比 | IPv4 -> IPv6 过渡策略 )

    文章目录 一.IPv6 发展 二.IPv6 数据报格式 三.IPv6 和 IPv4 对比 四.IPv6 地址表示 五.IPv6 地址 类型 六.IPv4 向 IPv6 过渡策略 一.IPv6 发展 I ...

  6. python 编写一个函数来验证输入的字符串是否是有效的 IPv4 或 IPv6 地址_产品 | 工信部发声IPv6即将部署,你的路由需要更换吗?...

    提到说话算数不得不表扬一下工信部,从最早的"提速降费"到现在的"携号转网",每一件事情都办的有条不紊,件件落实到咱们老百姓的生活上. 最近两年工信部都在忙一件大 ...

  7. 厚积薄发,看腾讯云如何快速从IPv4向IPv6演进?

    IPv6技术在国内沉寂数十年后,在国家推进下重新登上重要舞台.2018年工业和信息化部发布了关于贯彻落实<推进互联网协议第六版(IPv6)规模部署行动计划>的通知.不但展示国家推动IPv6 ...

  8. ipv4和ipv6的区别,如何保护ip地址安全?

    IP 地址允许计算机和设备通过 Internet 相互通信,IP 地址是分配给设备以在 Internet 上识别它的一串数字.它是一个地址,用于发送用户请求的数据包.有两种类型:IPv4和IPv6.这 ...

  9. 【PHP】关于IPv4、IPv6 的操作函数

    文章目录 格式验证 [IPv4/IPv6 manipulation library for PHP](https://github.com/rlanvin/php-ip) [python IPaddr ...

  10. php主机转发ipv6,php实现ipv4转换ipv6

    php实现ipv4转换ipv6 首先ipv6是什么? IPv6是下一版本的互联网协议,也可以说是下一代互联网的协议,它的提出最初是因为随着互联网的迅速发展,IPv4定义的有限地址空间将被耗尽,地址空间 ...

最新文章

  1. 中国液化石油气(LPG)市场销售现状与竞争发展策略分析报告2022-2028年版
  2. c++内存,堆和栈的区别
  3. 设备的阻塞与非阻塞操作
  4. 为什么要叫长虹玻璃呢_中和热测定实验中为什么温度计要放到环形玻璃棒中间?放外面可行吗?...
  5. Geek爱旅行 - 穿越时间的旅行
  6. MongoDB在Linux下常用优化设置
  7. python怎么创建变量_Python之变量的创建过程
  8. python入门必备10个坑_python中的基础坑
  9. RGB网页颜色在线取色器
  10. Cannot load php5apache2_4.dll into server解决办法;
  11. Log4j日志输出格式
  12. PS自定义形状+笔刷添加打造完美水印
  13. Ubuntu | ubuntu下安装edge
  14. android-keystool
  15. Qt -设计嵌入式设备用户界面的利器
  16. js生成8位随机字符串密码
  17. 2018第九届蓝桥杯B组决赛-搭积木
  18. 工作第十五周:上线前的惊悚
  19. 网络安全-内网DNS劫持-ettercap
  20. POJ3208魔鬼数

热门文章

  1. 虚拟机设置BT4上网
  2. C++虚函数概念及使用(基础)
  3. 用Scrapy和Selenium爬取动态数据
  4. 文件已经删除,但是空间没有释放的异常
  5. 成像数据更好的展示_如何使用数据科学更好地了解您的客户
  6. php反序列化--字符串逃逸
  7. INSERT INTO语句
  8. C# 创建命名管道服务器
  9. 蒲公英 linux安装目录,蒲公英 - 文档中心 - 使用 Fastlane 上传 App 到蒲公英
  10. ios移动端input以及中文键盘和阴影效果问题