Cel*_*tas 2 math networking ip-address subnet
我理解,如果两个IP地址与子网掩码进行AND运算,如果结果相同则它们在同一网络上.如果结果不同,则它们位于不同的网络上.我的问题是,如果给出一个省略0的IP地址,那么额外的0会被放置在哪里?
例如,子网掩码是255.128.0.0,你有IP 126.1.0.10和IP 126.127.0.1如果您只是盲目地使用子网掩码和IP获得不同的结果,即使它们位于同一网络上.
126.1.0.10是126.100.000.100还是126.001.000.100?
阅读回复后编辑:
255128000000 AND 126001000010 = 1085496376*32*但 255128000000 AND 126127000001 = 1085276323*84*
我错过了什么?
IPv4地址被写成四个以点分隔的普通十进制数(每个都适合一个字节).
普通的十进制数1是"1",也可以写成001.但是100是不同的数字,即"一百".
AND操作始终是按位 AND,因此要了解它,您必须首先看到点分十进制地址和网络掩码如何对应于原始二进制32位地址:
126 . 127 . 0 . 1
01111110 01111111 00000000 00000001
255 . 128 . 0 . 0
AND 11111111 10000000 00000000 00000000
-----------------------------------------------
01111110 00000000 00000000 00000000
126 . 0 . 0 . 0
Run Code Online (Sandbox Code Playgroud)
所以带有网络掩码255.128.0.0的126.127.0.1位于子网126.0.0.0/9中
在软件中,通常将 IPv4地址存储在一个32位变量中 - 因此126.127.0.1是01111110011111110000000000000001二进制(也编码2122252289十进制,除了没有人关心 32位IP地址的十进制值),以及只有在需要向人类用户显示时,它才会转换为点分十进制.这种表示是glglgl描述为多次乘以256的内容.
如果在32位变量(11111111100000000000000000000000二进制或小数为4286578688)中也有网络掩码,则可以在单个机器指令中将它们与AND获取网络地址01111110000000000000000000000000.
| 归档时间: |
|
| 查看次数: |
12956 次 |
| 最近记录: |