背景

随着IPv6越来越普及,经常要跟IPv6地址打交道,迫切需要一个统一的IPv6地址文本表示规范。

RFC4291简单的说明了如何将IPv6地址表示成文本形式,但有很多有歧义和不周全的地方。

RFC5952针对IPv6地址的文本表示形式给出了一个推荐方案,对RFC4291做了完善。

规范的IPv6地址文本表示形式

IPv6地址有128位,写成16进制最多需要32个16进制数字。通常将IPv6地址切分成8份,每份占16位,单独的一份最多用4个16进制数字表示,任意两份之间使用‘:’进行分割。

为了规范IPv6地址的文本表示形式,引入了以下规则:

1. 16位字段中起始的0必须被压缩。

例如,2001:0db8::0001是不可接受的,必须被表示成2001:db8::1。一个单独的16位0000字段必须被表示成0。

2.“::”的用法

  2.1,在使用符号“::”时必须最大化它的能力。例如,2001:db8:0:0:0:0:2:1必须被缩短成2001:db8::2:1。类似的,2001:db8::0:1是不可接受的,因为符号“::”可以被用来产生一个更短的表达形式2001:db8::1。

  2.2,符号“::”必须不能被用来仅缩短一个16位0字段。例如,2001:db8:0:1:1:1:1:1是正确的,但2001:db8::1:1:1:1:1是错误的。

  2.3,当有多于一个地方可以放置“::”时,必须选择缩短最长的连续16位0字段(例如,在2001:0:0:1:0:0:0:1中,被缩短的是连续的3个0字段)。

    当连续16位0字段的长度相同时(例如,2001:db8:0:0:1:0:0:1),必须选择缩短第一个连续0序列。例如,2001:db8::1:0:0:1是正确的表示形式。

3. IPv6地址中的字符“a”,“b”,“c”,“d”,“e”和“f”必须使用小写。

4. IPv6地址和端口组合时,必须使用[2001:db8::1]:80这种形式。尤其是在URI中使用IPv6地址时。

IPv6地址的文本表示规范的更多相关文章

  1. IPv6地址在URL上的格式

    转自:http://www.cnpaf.net/Class/RFC/200408/983.html 摘要 本文档定义了在WWW浏览器的URL中执行的文本IPv6地址的格式.在包括Microsoft的I ...

  2. ipv6地址在URL中的表达方式,如何在URL地址中包含ipv6地址

    摘要 本文档定义了在WWW浏览器的URL中执行的文本IPv6地址的格式.在包括Microsoft的IE,Mozilla和Lynx等几个已经被广泛安装使用的浏览器的IPv6版本中,这种格式已经被使用.并 ...

  3. 在UNC(通用命名规范)路径和URL中使用IPv6地址

    转自:http://www.ipv6bbs.cn/thread-348-1-1.html   虽然微软在支持IPv6上表现得很积极,但Windows却并没有完整地支持IPv6,例如,在Windows中 ...

  4. 【】URL中的文本IPv6地址的格式RFC2732

    RFC2732规范中URL中的文本IPv6地址的格式, 截取其中重要部分原文如下: RFC 2732 Format for Literal IPv6 Addresses in URL's Decemb ...

  5. NFC(9)NDEF文本格式规范及读写示例(解析与封装ndef 文本)

    只有遵守NDEF文本格式规范的数据才能写到nfc标签上. NDEF文本格式规范 不管什么格式的数据本质上都是由一些字节组成的.对于NDEF文本格式来说. 1,这些数据的第1个字节描述了数据的状态, 2 ...

  6. 48位MAC转化为唯一的128位IPV6地址

    根据EUI_64规范,一个MAC地址生成唯一的一个IPV6地址. ①.反转MAC的第七位为1. ②.在24bit后加入FFFE. ③.在最前面加上FE80::. 示例:

  7. IPv6地址类型和操作

    IPv6地址的号段划分和前缀表示法: IPv6拥有128位巨大的地址空间,对于那么大的空间,也不是随意的划分,而是使用按照bit位进行号段划分 地址结构图 全局路由前缀 (48位) 子网ID (16位 ...

  8. ipv6 地址说明

    开篇我们先简单介绍下ipv4 地址 IPv4 地址: ipv4地址一共32位,用点分十进制表示,每一个部分是8位.子网掩码有两种表示 192.168.1.3 / 24 表示ip的前24位是网络位,后8 ...

  9. awk函数实现将简化IPV6地址补全

    在用awk处理文本时,有些场景需要将简化的IPV6地址补充成完整的IPV6地址,下边函数可简单实现: IPV6地址补全函数 # ipv6地址补全函数 function compipv6(orig_ad ...

  10. win10 localhost 解析为 ipv6地址 ::1 的解决办法

    今天遇到个奇怪的问题,localhost 访问时提示 not found 404,但是有127.0.0.1可以访问.最后找到原因,是因为 windows 把 localhost 解析为 ipv6 地址 ...

随机推荐

  1. golang复用http.request.body

    golang复用http.request.body 问题及场景 业务当中有需要分发http.request.body的场景.比如微信回调消息只能指定一个地址,所以期望可以复制一份消息发给其他服务.由服 ...

  2. WEB服务与NGINX(20)- nginx 实现HTTP反向代理功能

    目录 1. nginx实现反向代理功能 1.1 nginx代理功能概述 1.2 NGINX实现HTTP反向代理 1.2.1 HTTP反向代理基本功能 1.2.1.1 反向代理配置参数 1.2.1.2 ...

  3. CF933-Div3 大致思路+题解

    \(Rank\) A - Rudolf and the Ticket 纯水题 暴力枚举直接过 $code$ #include<bits/stdc++.h> #define fo(x,y,z ...

  4. FFmpeg开发笔记(二十)Linux环境给FFmpeg集成AVS3解码器

    ​AVS3是中国AVS工作组制定的第三代音视频编解码技术标准,也是全球首个已推出的面向8K及5G产业应用的视频编码标准.AVS工作组于2019年3月9日完成第三代AVS视频标准(AVS3)基准档次的制 ...

  5. 基于Vue3水印组件封装:防篡改守护!

    基于Vue 3的全新水印通用组件.这款组件不仅功能强大,而且易于集成,能够轻松为您的网页或应用添加自定义水印,有效防止内容被篡改或盗用. 在线查看效果: 原文可查看效果地址 一,编写watermark ...

  6. layui 新增行

    layui表格新增行目前只在从内存加载数据的情况下可行! 在多方查找数据与实验后,我发现layui确实只能在直接赋值数据(从内存加载数据)的情况下新增行,即首次渲染表格时使用内存数据给表格的data参 ...

  7. Base64 java图片工具类

    import org.springframework.util.Assert; import javax.imageio.ImageIO; import java.awt.image.Buffered ...

  8. JS+DOM简要笔记

    js官方文档: https://www.w3school.com.cn/js/index.asp 简单理解:html是内容,css是控制样式,js是行为. 1,js弱类型特点 JavaScript 是 ...

  9. 为什么SwiftUI使用struct, 限制使用class

    前言 在学习SwiftUI所有的地方,视图元素都定义一个struct并实现View协议,该协议定义body变量返回View类型. 但是为什么,这里一直是指定的struct, 而不是class呢? 尝试 ...

  10. OPA Gatekeeper:Kubernetes的策略和管理

    目录 一.系统环境 二.前言 三.OPA Gatekeeper简介 四.在kubernetes上安装OPA Gatekeeper 五.gatekeeper规则 5.1 使用gatekeeper禁止某些 ...