IPv4如何转换为IPv6?
ipv6已经逐渐在应用,现在已经有很多的运营商支持ipv6,前天我们也发布了如何让电脑使用ipv6地址?有很多朋友在问?ipv6有什么作用,它的表示方式是什么,今天我们来一起来详细了解下ipv6相关计算与转换。 |
我们现在用的是ipv4的地址是32位,例如这样的,59.123.123.123。总数大约有43亿个左右,地球上每个人平均分不了一个,更别说每台电脑了,还要减去内网专用的192、170地址段,就更少了,到现在为止,就更少了。随着科技的进步与物联网的发展,ipv4显然已经满足不了要求了,严重约束了互联网的应用与发展,所以ipv6应运而生。
那什么是ipv6呢?
IPv6是Internet Protocol Version 6的缩写,其中Internet Protocol译为“互联网协议”。IPv6是用于替代现行版本IP协议(IPv4)的下一代IP协议,号称可以为全世界的每一粒沙子编上一个网址。
较之IPv4使用的32位地址,IPv6使用128位地址:
按照地址数的计算方法,我们可以计算出IPv6能够提供的地址数为:
2^128-1个(大约340万亿个)
IPV6地址极为丰富,几乎是取之不尽的,号称地球上的每一粒沙子都能分配到自己的地址,更不用说每台手机、电脑了,连冰箱、洗衣机都能拥有属于自己独一无二的ip地址了,一下子就高大上了不少。
ipv6有什么用,这也是很多朋友在问,其实ipv6的好处还是挺多的。
128位的ipv6拥有大量的ip地址,为将来数十年提供了足够的IP地址,巨大的地址空间为数十亿新设备提供了全球唯一地址,就是老百姓也可以拥有公网ip了,在ipv4时期,由于地址有限,只有企业才能申请公网,我们使用的网络都是私有地址,而ipv6,每个设备都可以拥有公网ip,那么拥有了公网能干啥呢?
作用非常多,比如我们项目监控,可以直接用公网ip地址访问了,就能很好的解决监控中远程控制访问问题,异地监控集中控制也就不用那么麻烦了。
对于企业或个人也可以搭建服务器,使用唯一标识的ipv6地址就可以访问这个服务器了,共享文件极其简单。
可以有更快的速度,这个呢,用专业的话讲,人类无法感受到的微小的速度提升,但毕竟还是快了。
更加安全,以前大家会经常莫名其妙的中木马或者病毒,这个在IPv6里会明显减少。
难以想象,手机、电脑、汽车、电视、空调、机器人、、、都分到了一个独一无二ip后,会是怎样的,物联网发展将会只受想象力的限制。
Linux书籍:https://www.linuxprobe.com/books
IPV6地址的表示采用16进制的表示方法。将128bit分为8组,每组16比特,用4个16进制数表示,各组之间用":"隔开,每组中最前面的0可以省略,但每组必须得有一个数。
格式为 X:X:X:X:X:X:X:X,其中每个X代表16个bit,以十六进制显示,如下面这些:
ip一:ABCD:EF01:2345:6789:ABCD:EF01:2345:6789
ip二:FEDC:BA98:7654:3210:FEDC:BA98:7654:3210
ip三:1080:0:0:0:8:800:200C:417A
在某些情况下,一个IPv6地址中问可能包含很长的一段0,可以把连续的一段0压缩为“::”。但为保证地址解析的唯一性,地址中”::”只能出现一次,例如:
1080:0:0:0:8:800:200C:417A =1080::8:800:200C:417A
FF01:0:0:0:0:0:0:101=FF01::101
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-IPv6互通,IPv4地址会嵌入IPv6地址中,此时地址常表示为:X:X:X:X:X:X:d.d.d.d,
也就是前6组用冒分十六进制表示,后二组用十进制表示,而最后32bit地址则使用IPv4的点分十进制表示,例如::192.168.0.1与就是一个典型的例子 。
上面我们提到了,ipv4地址要与ipv6地址互通,需要将ipv4转换为ipv6地址。
举例:
如果IPv4的一个地址为135.75.43.52,现有32位地址,那么如何转换为ipv6呢?
只需要在ip地址前面6组共96位补充0即可,即
0000:0000:0000:0000:0000:0000:135.75.43.52
也就是::135.75.43.52(内嵌IPv4表示法)
135.75.43.52 按十六进制算出即87.4B.2B.34,
而87.4B.2B.34串地址一组还是8位,所以需要两组v4地址合成v6地址,
再把前96位补零,它可以被转化为
0000:0000:0000:0000:0000:0000:874B:2B34或者::874B:2B34。
补充下:十进制如何转化为16进制?
这里弱电君有必要补充下十进制如何转化为16进制,在ipv6时代,可能会经常需要用到。
方法是:十进制数除以16,反向取余数,除到不能除为止。当然大家听到这个方法可能是一头雾水,我们具体来看下举例计算过程。
例如10进制的ipv4地址:135.75.43.52 ,化成16进制的。
为了方便大家了解原理,具体计算过程可以看下图:
16进制的10、11、12、13、14、15分别用A、B、C、D、E、F来表示。
所以十进制的135.75.43.52 最终得出的是十六进制87.4B.2B.34,转成ipv6就是::874B:2B34。当然也是可以通过工具直接转换。
IPv4如何转换为IPv6?的更多相关文章
- 科普:什么是IPV4?什么是IPV6?
IPv4是Internet Protocol version 4(网际协议版本4)的英文简称,而中文简称为“网协版4”. 目前的全球因特网所采用的协议族是TCP/IP协议族.IP是TCP/IP协议族中 ...
- ipv4转化为ipv6
十進制轉換成十六進位 IPV6為十六進位,所以十進制轉換成十六進位192=c0 168=a8192.168.1.1 轉成 16 進制為 c0.a8.01.01可以使用 Windows 工程版或是程式設 ...
- 【转】非教育网中IPv4网络访问IPv6资源
1. 背景知识 随着个人电脑.移动终端.乃至物联网的不断发展,有很大的IP地址需求.由于IPv4协议设计时没有料到日后网络会如此发达,IPv4网络中的IP数量相对今天的需求来说,显得捉襟见肘.加上IP ...
- 解析IPV4报文 和IPV6 报文的 checksum
解析IPV4报文和IPV6报文的checksum的算法: 校验和(checksum)算法,简单的说就是16位累加的反码运算: 计算函数如下: 我们在计算时是主机字节序,计算的结果封装成IP包时是网络字 ...
- ipv4枯竭和ipv6的启用
IPv4是Internet Protocol version 4的缩写,中文翻译为互联网通信协议(TCP/IP协议)第四版,通常简称为网际协议版本4. IPv4使用32位(4字节)地址,因此地址空间中 ...
- 在linux中设置优先使用ipv4,而不是ipv6
背景: 有时候更新源的时候默认使用ipv6,而ipv6下载数据时候总出现问题. 所有想默认出口的时候优先使用ipv4出口访问,而不是ipv6. 要使用ipv4 连接优先而不必禁用ipv6,需要修改ga ...
- iOS 支持 IPv6
苹果的规定:2016年6月1日提交到App Store必须支持IPv6-only网络. 官方文档:https://developer.apple.com/library/mac/documentati ...
- IPv6原理、应用与实践
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 作者:腾讯微信技术架构部团队 2017年11月26日,中共中央办公厅和国务院办公厅印发了<推荐互联网协议第六版(IPv6)规模部署行动 ...
- IPv6技术详解:基本概念、应用现状、技术实践(下篇)
本文来自微信技术架构部的原创技术分享. 1.前言 在上篇<IPv6技术详解:基本概念.应用现状.技术实践(上篇)>,我们讲解了IPV6的基本概念. 本篇将继续从以下方面展开对IPV6的讲解 ...
随机推荐
- [技术博客]使用PanResponder实现响应左右滑动手势
在实现用户左右滑动完成不同操作时,使用react-native的官方API--PanResponder响应用户手势操作. PanResponder介绍 PanResponder中文文档 PanResp ...
- 【技术博客】Pytorch代码生成
开发组在开发过程中,都不可避免地遇到了一些困难或问题,但都最终想出办法克服了.我们认为这样的经验是有必要记录下来的,因此就有了[技术博客]. Pytorch代码生成经验文档 关于模型代码的生成,主要思 ...
- 修改qt版本
安装了qt4和qt5 /usr/lib/x86_64-linux-gnu/qt-default/qtchooser 的default.conf 第一行改成自己qmake的bin路径即可
- MyBatis(九):Mybatis Java API批量操作(增、删、改、查)
最近工作中用到了mybatis的Java API方式进行开发,顺便也整理下该功能的用法,接下来会针对基本部分进行学习: 1)Java API处理一对多.多对一的用法: 2)增.删.改.查的用法: 3) ...
- Python的threading和multiprocessing
Python的threading 基础用法, 通过 threading.Thread() 创建线程, 然后 start() 和 join() import time import threading ...
- 使用hdfs-mount挂载HDFS
目录 1.特性(计划)简介 2.构建程序 3.使用hdfs-mount挂载HDFS hdfs-mount是一个将HDFS挂载为本地Linux文件系统的工具,使用go语言开发,不依赖libdfs和jav ...
- Linux虚拟机:发布WebService接口出现异常,无法访问接口
Linux虚拟机:发布WebService接口出现异常,无法访问接口 今天在部署WebService工程的时候遇到的问题: 在Linux虚拟机上部署一个tomcat同时在tomcat下放置2个工程,其 ...
- [K8s]无yaml文件重启Pod
在没有pod 的yaml文件时,强制重启某个pod kubectl get pod PODNAME -n NAMESPACE -o yaml | kubectl replace --force -f ...
- PCL中outofcore模块---基于核外八叉树的大规模点云的显示
写在前面 最近公众号的活动让更多的人加入交流群,尝试提问更多的我问题,群主也在积极的招募更多的小伙伴与我一起分享,能够相互促进. 这里总结群友经常问,经常提的两个问题,并给出我的回答: (1) ...
- SQL中merge into用法
从备份表中更新字段到正式表中,使用 UPDATE 批量更新大量的数据,会出现效率低下,有时候甚至卡死的情况,后面通过使用 MERGE INTO 代替 UPDATE 执行批量更新,会提升执行效率. ME ...