Vue学习笔记-IPV6地址校验

最近接手的项目需要使用到IPV6地址,前段需要用JS进行IPV6合法性校验,所以开始研究。

IPV6百度百科

ipv6表示方法

IPv6的地址长度为128位,是IPv4地址长度的4倍。于是IPv4点分十进制格式不再适用,采用十六进制表示。

IPv6有3种表示方法:

冒分十六进制表示法
格式为X:X:X:X:X:X:X:X,其中每个X表示地址中的16b,以十六进制表示。

例如:
ABCD:EF01:2345:6789:ABCD:EF01:2345:6789 这种表示法中,每个X的前导0是可以省略的
例如:2001:0DB8:0000:0023:0008:0800:200C:417A →  2001:DB8:0:23:8:800:200C:417A

0位压缩表示法
  在某些情况下,一个IPv6地址中间可能包含很长的一段0,可以把连续的一段0压缩为“::”,但为保证地址解析的唯一性,地址中”::”只能出现一次

例如:
FF01:0:0:0:0:0:0:1101 → FF01::1101
0:0:0:0:0:0:0:1 → ::1
0:0:0:0:0:0:0:0 → ::

内嵌IPv4地址表示法
  为了实现IPv4-IPv6互通,IPv4地址会嵌入IPv6地址中,此时地址常表示为:X:X:X:X:X:X:d.d.d.d,前96b采用冒分十六进制表示,而最后32b地址则使用IPv4的点分十进制表示,例如::192.168.0.1与::FFFF:192.168.0.1就是两个典型的例子,注意在前96b中,压缩0位的方法依旧适用.

校验IPV6

1.使用正则表达式校验


2.使用ip-address组件

var Address6 = require('ip-address').Address6;
var address = new Address6('2001:0:ce49:7601:e866:efff:62c3:fffe');
address.isValid(); // true  
var teredo = address.inspectTeredo();
teredo.client4;    // '157.60.0.1'

你可能感兴趣的:(Vue学习笔记-IPV6地址校验)