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个字节为主机地址 |
| B类地址 | 前两位为10,注意是位 |
1、 第1字节和第2字节为网络地址,后2个字节为主机地址 |
| C类地址 | 前三位为110,注意是位 |
1、前三个字节为网络地址,最后字节为主机地址 |
| D类地址 | 前四位为1110,注意是位 |
1、不分网络地址和主机地址。 |
| E类地址 | 前五位为11110,注意是位 |
1、不分网络地址和主机地址 |
此外还有几个特殊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})|(1\d{1,2})|(2[0-4]\d)|(25[0-5]))\.){3}((\d{1,2})|(1\d{1,2})|(2[0-4]\d)|(25[0-5]))
使用边界匹配,不然256.1.1.1也会匹配成功,会匹配成56.1.1.1,那么最终正确的匹配IPv4的正则表达式为:
(?=(\b|\D))(((\d{1,2})|(1\d{1,2})|(2[0-4]\d)|(25[0-5]))\.){3}((\d{1,2})|(1\d{1,2})|(2[0-4]\d)|(25[0-5]))(?=(\b|\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})$
IPV4和IPV6的划分的更多相关文章
- RFC2474 - Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers的双语版
RFC2474 - Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers英文版 ...
- 计算机网络-网络层(1)IPv4和IPv6
IPv4数据报格式: 版本号 这4比特规定了数据报的IP 协议版本.通过查看版本号,路由器能够确定如何解释IP数据报的剩余部分. 首部长度 以4字节为单位,没有选项的首部长度为5*4=20字节 服务类 ...
- 一起来聊聊 IP 地址、局域网、广域网、IPV4 和 IPV6
背景 谁都知道 IP 地址是干嘛的,但是它出现的前因后果你真的知道吗? 我觉得很有必要重新复习下计算机网络基础知识,实在太太太重要了 本篇文章素材均来自:https://www.bilibili.co ...
- IPv4 与 IPv6的区别
在介绍 IPv4 到 IPv6 区别之前,我们先来简单了解一下 IPv4 和 IPv6. IPv4 网际协议版本4(英语:Internet Protocol version 4,IPv4),又称互联网 ...
- IP地址(IPv4)/IPv6地址的正则表达式
原地址:http://pfeishao.blog.163.com/blog/static/18162337020112113130453/ Pv4地址正则表达式:^((25[0-5]|2[0-4]\d ...
- ipv4、ipv6的socket同时监听“bind: Address already in use”的解决方法
创建ipv4和ipv6的socket,同时监听某个端口的ipv4和ipv6报文,运行时bind函数执行失败,提示“bind: Address already in use”.原因:ipv6的socke ...
- ios 兼容IPV4和IPV6网络通信
前言: 苹果官方出了新的规定,要求新上架的app都必须单独支持ipv6-only的网络. 准备工作: 搭建IPV6测试环境:http://blog.csdn.net/potato512/article ...
- VLC测试IPv4 IGMP/IPv6 MLD协议
1 简述 VLC既可以充当流客户端,又可以充当流服务器,并且可以跨平台使用,是一款开源.免费的软件,基于GNU GPL许可证. 2 搭建组播服务器 第一步:运行程序后选择“媒体 串流”:第二步:通过 ...
- TCP/IP读书笔记(4) IPv4和IPv6 路由选择
TCP/IP读书笔记(4) IPv4和IPv6 路由选择 网络层是位于链路层之上,TCP/IP模型中网络层的核心协议是IP协议(Internet protocol). 目前主流的IP协议是IPv4(I ...
随机推荐
- Vuforia笔记1(Vuforia8.0.10与Unity2018.3.6f1)
一丶ARCamera(AR的灵魂) 1.World Center Mode SPECIFIC_TARGET:制定一个物体作为世界中心坐标 FIRST_TARGET:摄像机所照射到的第一个需要识别的目标 ...
- 基本mysql语句
一 select语句 基本语法 select 列名1,列名2 //可以使用完全限定的列名 tables.列名 form tables 过滤(where ) 分组(group ...
- RPA自定义脚本打开文件夹
import os import subprocess from rpa.web.common.utils import convert_2_unicode def startfile(filenam ...
- python — lambda表达式与内置函数
目录 1 lambda表达式 (匿名函数) 2 内置函数 1 lambda表达式 (匿名函数) 用于表示简单的函数 lambda表达式,为了解决简单函数的情况: def func(a1,a2): == ...
- 【hash表】门票
问题 I: [哈希和哈希表]门票 题目描述 RPK要带MSH去一个更加神秘的地方!RPK带着MSH穿过广场,在第1618块砖上按下了一个按钮,在一面墙上随即出现了一个把手.RPK握住把手,打开了一扇石 ...
- SpringBoot热启动让开发更便捷
在开发过程中,当写完一个功能我们需要运行应用程序测试,可能这个小功能中存在多个小bug,我们需要改正后重启服务器,这无形之中拖慢了开发的速度增加了开发时间,SpringBoot提供了spring-bo ...
- margin:0 auto;生效条件
1.position:absolute下不生效 原因:position:absolute只能相对于父元素进行定位top.left定位,相当于浮在父元素上面,所以margin:0 auto;就没有了参考 ...
- MongoDB的复合唯一索引
一 创建 JavaScript Shell db.room.ensureIndex({'floor':1,'num':1}) Spring Data @Data // lombok @Document ...
- 故事板(StoryBoards)和动画(Animations)
Silverlight & Blend动画设计系列五:故事板(StoryBoards)和动画(Animations) 正如你所看到的,Blend是一个非常强大的节约时间的设计工具,在Blend ...
- c# winform找窗体
Application.OpenForms["frm"],一句话就找到窗体