摘要:
Internet的发展离不开IP(Internet Protocol,网络之间互联的协议),目前广泛应用的是IPv4,正在积极部署的是IPv6。
本文主要介绍IP地址的不同表达格式和转化。
IP的目的
网络之间互连的协议是为计算机网络相互连接进行通信而设计的协议。在因特网中,它是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算机系统,只要遵守IP协议就可以与因特网互连互通。
IP地址
IPv4使用32位(4字节)地址,因此地址空间中只有4,294,967,296(232)个地址。不过,一些地址是为特殊用途所保留的,如专用网络(约18百万个地址)和多播地址(约270百万个地址),这减少了可在互联网上路由的地址数量。随着地址不断被分配给最终用户,IPv4地址枯竭问题也在随之产生。
为便于使用,IP地址常以XXX.XXX.XXX.XXX
形式表现,每组XXX代表小于或等于255的10进制数。
以下均是192.0.2.235
,以此为例,有以下不同的格式。
格式 | 值 | 从点分十进制转换 |
---|---|---|
点分十进制 | 192.0.2.235 | …… |
点分十六进制 | 0xC0.0x00.0x02.0xEB | 每个字节被单独转换为十六进制 |
点分八进制 | 0300.0000.0002.0353 | 每个字节被单独转换为八进制 |
十六进制 | 0xC00002EB | 将点分十六进制连在一起 |
十进制 | 3221226219 | 用十进制写出的32位整数 |
八进制 | 030000001353 | 用八进制写出的32位整数 |
此外,在点分格式中,每个字节都可用任意的进制表达。如,192.0x00.0002.235
是一种合法(但很不常用)的表示。
以上IP值尽可以通过执行ping
命令,并显示出点分十进制的值。
IP地址相互转换
一般我们见到的都是点分十进制,那从点分十进制到十进制怎样转换呢?
同样以192.0.2.235 -> 3221226219
为例:
即 3221226219 = 192 * 256^3 + 0 * 256^2 + 2 * 256^1 + 235*256^0
。
贴几行转换代码,不贴代码不舒服😂😂😂
java:
|
|
还有更方便的shell版本:
|
|
粘贴一下,就可以使用了~
其他类似,不一一赘述。