根据ip地址获取主机名 java 根据ip地址求主机地址_子网掩码

IP

  • 每一类地址都由两个固定长度的字段组成,其中一个字段是网络号 net-id,它标志主机(或路由器)所连接到的网络,而另一个字段则是主机号 host-id,它标志该主机(或路由器)
  • 主机号在它前面的网络号所指明的网络范围内必须是唯一的。

IP地址类别
C类地址
IP地址包括 网络地址+主机地址, 即IP地址=网络地址(net-id)+主机地址(host-id)

根据ip地址获取主机名 java 根据ip地址求主机地址_子网掩码_02

根据ip地址获取主机名 java 根据ip地址求主机地址_子网掩码_03


根据ip地址获取主机名 java 根据ip地址求主机地址_网络地址_04

网络地址

把IP地址和子网掩码转换成二进制,然后进行与运算。

与运算

0 + 0 = 0
0 + 1 = 0
1 + 0 = 0
1 + 1 = 1

IP地址:	194.55.181.17   	 11000010   00110111    10110101    00010001
子网掩码:255.255.192.0        11111111   11111111   11000000       00000000
计算:
				11000010  00110111  10110101   00010001
				11111111  11111111  11000000   00000000
经过了与运算之后: 11000010  00110111  10000000   00000000
把二进制转换为十进制后的网络地址为:194.55.128.0

直接广播地址:

在得到网络号的基础上,将网络号右边的表示IP地址的主机部分的二进制位全部填上1,再将得到
的二进制数转换为十进制数就可以得到广播地址

该题中子网掩码为  11111111   11111111   11000000   00000000 
网络号占了18位,所以本题中表示IP地址的主机部分的二进制位是14位,
网络号(网络地址):194.55.128.0 
转换为二进制为: 11000010  00110111  10000000   00000000
之后从网络号右边数起,将14个0 全部替换为1 即 11000010  00110111  10111111 11111111
将这个二进制的广播地址转换为十进制就是   194.55.191.255

主机号

主机号计算方法:将子网掩码取反再与IP地址按位与(&)(即与运算)后得到的结果即为主机号
子网掩码取反:将子网掩码的1变成0,0变成1

本题中子网掩码为:  11111111   11111111   11000000   00000000 


对子网掩码取反为:  00000000   00000000   00111111   11111111
IP地址为:        11000010    00110111  10110101    00010001
与运算得:      	 00000000    00000000  00110101    00010001
主机号:    0.0.105.17

计算可用IP地址的范围

子网内可用的IP地址的范围从 网络号 + 1 到 广播地址 -1

本题中:
可用的IP地址的范围是:
194.55.128.1 到 194.55.191.254
所以在子网内第一个可用IP地址为 194.55.128.1
在子网内最后一个可用IP地址为 194.55.191.254