• IPV4和IPV6的划分


      IP(Internet Protocol,网络互联协议)地址就是连接互联网的主机被分配或指派的一段数字标识,是传输报文组装时最重要的组成部分,用来在互联网中数据传输时标识源和目标主机。

    IPv4

    IPv4地址长度为32位(bit),每8位为一个字节,用十进制表示值从0到255,共四段。

    IP地址按作用范围分为两类:一类是公网IP地址,另一类为私网IP地址

    IP按用途可分五大类:A类(政府)、B类(公司)、C类(公用)、D类(组播)和E类(实验),地址格式为网络地址+主机地址或网络地址+子网地址+主机地址形式。 它们之间的区别和特征如下表所示:

    地址类型 特征 介绍
    A类地址 第一位为0,注意是位

    1、第1字节为网络地址,其它3个字节为主机地址
    2、地址范围:1.0.0.1—126.255.255.254
    3、10.X.X.X是私有地址,范围从10.0.0.0-10.255.255.255
    4、127.X.X.X是保留地址,用做环回测试。
    5、默认子网掩码255.0.0.0

    B类地址 前两位为10,注意是位

    1、 第1字节和第2字节为网络地址,后2个字节为主机地址
    2、地址范围:128.0.0.1—191.255.255.254
    3、私有地址范围:172.16.0.0—172.31.255.255
    4、保留地址:169.254.X.X
    5、默认子网掩码255.255.0.0

    C类地址 前三位为110,注意是位

    1、前三个字节为网络地址,最后字节为主机地址
    2、地址范围:192.0.0.1—223.255.255.254
    3、私有地址:192.168.X.X,范围从192.168.0.0-192.168.255.255
    4、默认子网掩码255.255.255.0

    D类地址 前四位为1110,注意是位

    1、不分网络地址和主机地址。
    2、地址范围:224.0.0.1—239.255.255.254

    E类地址 前五位为11110,注意是位

    1、不分网络地址和主机地址
    2、地址范围:240.0.0.1—255.255.255.254

    此外还有几个特殊IP地址:

      1、0.0.0.0只能做源地址 

      2、255.255.255.255是广播地址

      3、127.x.x.x为环回地址,本机使用 

      4、专用地址: 

        10/8 地址范围:10.0.0.0——10.255.255.255, 

        172.16/12 地址范围:172.16.0.0——172.31.255.255, 

        192.168/16地址范围:192.168.0.0——192.168.255.255。

     匹配IPv4的正则表达式

    IPv4地址由4个这样的数字组成,中间用"."隔开,所以可以匹配IPv4的正则表达式为:

    (((d{1,2})|(1d{1,2})|(2[0-4]d)|(25[0-5])).){3}((d{1,2})|(1d{1,2})|(2[0-4]d)|(25[0-5]))

    使用边界匹配,不然256.1.1.1也会匹配成功,会匹配成56.1.1.1,那么最终正确的匹配IPv4的正则表达式为:

    (?=(|D))(((d{1,2})|(1d{1,2})|(2[0-4]d)|(25[0-5])).){3}((d{1,2})|(1d{1,2})|(2[0-4]d)|(25[0-5]))(?=(|D))

     用python实现

    import re
    pattern = re.compile(r'(2(5[0-5]{1}|[0-4]d{1})|[0-1]?d{1,2})(.(2(5[0-5]{1}|[0-4]d{1})|[0-1]?d{1,2})){3}')
    str = ''
    print(pattern.search(str))

    IPv6

    IPv6地址长度为128位(bit),每16位为一个字节,使用十六进制表示,用十进制表示的话值为从0到65535,共八段

    IPv6按照传输类型分为单播地址、任播地址和多播地址,其表示方法如下:

      1.冒号分隔的形式:x:x:x:x:x:x:x:x,其中x是16进制数,值为0x0000-0xFFFF。示例:FB21:1233:55B2:AA44:12B8:6761:890F:AB31。

      2.同0压缩形式:就是地址中如果出现连续两个或两个以上0时,可以采用压缩表示形式::(双冒号表示),但只能出现一次,因为如果出现两个或以上双冒号,技术上无法识别出实际的地址,比如FB21:0:0:0:12B8:6761:0:0,就可表示成FB21::12B8:6761:0:0,或FB21:0:0:0:12B8:6761::,不能表示成FB21::12B8:6761::。如果8个段值都是0,可以用::表示。

      3.混合形式:用来组合IPv4和IPv6地址,x:x:x:x:x:x:d.d.d.d,前6个段表示IPv6高序位,后面四段表示IPv4地址。

      IPv6作为IPv4的下一个版本,由RFC 2373 和RFC 2374定义。优点主要有:更大的地址空间、更小的路由表、增强的组播和流控制、自动配置和更高的安全性。

    IPv6的正则表达式

    支持IPv6基本格式的正则表达式:

    ^([\da-fA-F]{1,4}:){7}([\da-fA-F]{1,4})$
  • 相关阅读:
    基于WS流的RTSP监控,H5低延时,Web无插件,手机,微信ONVIF操控摄像头方案
    H5微信视频,直播低延时,IOS限制全屏播放,自动播放问题处理。
    最新IOS,safari11中对webrtc支持,IOS和android视频聊天,web低延时视频教学技术分析
    MySql 用户篇
    Sql Server 数据库帮助类
    [C#基础知识]转载 private、protected、public和internal的区别
    Mysql 插入语句
    .net core identityserver4 学习日志
    mysql 事务模板
    .net core 生成二维码
  • 原文地址:https://www.cnblogs.com/zhaopanpan/p/10281568.html
Copyright © 2020-2023  润新知