IP地址的不同格式和转化
摘要:
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:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 |
/**
* 输入IP“192.0.2.235”, 返回对应的数字形式IP: 3221226219
* 3221226219 = 192 * 256^3 + 0 * 256^2 + 2 * 256^1 + 235*256^0
*/
private static Long calculateIpSum(String strIp) {
validateIp(strIp); // 检验输入IP合法性,不合法抛出错误异常
String[] ss = strIp.split("\\.");
long[] longs = new long[ss.length];
for (int i = 0; i < longs.length; i++) {
longs[i] = Long.valueOf(ss[i]);
}
long result = longs[0] << 24;
result += longs[1] << 16;
result += longs[2] << 8;
result += longs[3];
return result;
} |
1 |
cip(){ echo $1|awk -F. '{n=0;for(i=1;i<=NF;i++){n*=256;n+=$i}print n}'; } |
关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
关注网络尖刀微信公众号
随时掌握互联网精彩
随时掌握互联网精彩
赞助链接
排名
热点
搜索指数
- 1 习近平对社会工作作出重要指示 7989354
- 2 马斯克身家大涨稳居全球首富 7999479
- 3 李佩霞案今日开庭 7854441
- 4 “人气聚起来、商气汇起来” 7736892
- 5 徐若瑄被曝患癌后发声 7687017
- 6 发型师晓华3天只睡了1个半小时 7563016
- 7 淘宝回应少林寺景区将开播 7420049
- 8 火锅界为何集体打响价格战 7342494
- 9 尹锡悦向国民鞠躬致歉 7203293
- 10 刘诗诗与儿子牵手走路好温馨 7140753