参考:

首先找到自己的ipv6地址:

ipconfig/all

计算ipv6的udp校验和 python实现_jar


计算ipv6的udp校验和 python实现_IP_02

1 IPv6地址格式

1.1首选格式
IPv6的128位地址每16位划分为一段,总共8段,每段用冒号隔开,这种表示方法叫做“冒号十六进制表示法”,如下:
fe80:0000:0001:0000:0440:44ff:1233:5678

1.2 压缩格式
有时候首先格式中的IP地址中有好多0,就可以把连续的一段0压缩为 :: ,即用冒号表示,但是一个IP地址中只能有一个::, 如下:
fe80:0000:0000:0000:0000:0000:0001:0000 —>fe80::0001:0000

1.3 内嵌IPv4地址的IPv6
在IPv4向IPv6过度的过程中,IPv4的地址会内嵌到IPv6中去,因此在IPv6地址的第一部分使用IPv6的格式(十六进制表示),第二部分使用IPv4的格式(十进制表示)。
如下:
0:0:0:0:0:0:192.168.12.1 或者 ::192.168.12.1
0:0:0:0:0:FFFF:192.168.12.1 或者 ::FFFF:192.168.12.1

2 常见的IP地址
关于常见的IP地址见下图(来自上面参考链接),比较直观清晰。

计算ipv6的udp校验和 python实现_java-ee_03


2.1 ::/128

即0:0:0:0:0:0:0:0,只能作为尚未获得正式地址的主机的源地址,不能作为目的地址,不能分配给真实的网络接口

2.2 ::1/128
即0:0:0:0:0:0:0:1,回环地址,相当于IPv4中的localhost(127.0.0.1)
如果我们的设备支持IPv6,即可看到这个地址

2.3 ::A.B.C.D
兼容IPv4的IPv6地址,其中<A.B.C.D>代表IPv4地址。自动将IPv6包以隧道方式在IPv4网络中传送的IPv4/IPv6节点将使用这些地址。

2.4 ::FFFF:A.B.C.D
是IPv4映射过来的IPv6地址,其中<A.B.C.D>代表IPv4地址,例如 ::ffff:202.120.2.30 ,它是在不支持IPv6的网上用于表示IPv4节点。

2.5 fe80::/10
本地链路地址,用于单一链路,适用于自动配置、邻机发现等,路由器不转发以fe80开头的地址。

2.6 FEC0::/10 & FC00::/7
本地站点地址,类似于IPv4私有地址,本地站点地址不会与全球IPv6通信.
FEC0::/10 已被废弃,目前新的地址为FC00::/7。

2.7 2001::/16
全球可聚合地址,由 IANA 按地域和ISP进行分配,是最常用的IPv6地址,属于单播地址。

2.8 2002::/16
6 to 4 地址,用于6to4自动构造隧道技术的地址,属于单播地址。

2.9 3ffe::/16
早期开始的IPv6 6bone试验网 地址,属于单播地址。

2.10 ff00::/8
组播地址。

postman测试

注意%和其后面的都不是ipv6的内容

计算ipv6的udp校验和 python实现_单播_04


测试成功!!!