IPv4地址由32位二进制数字组成,通常被划分为4个8位的部分,每个部分的数值范围是0到255。一个IPv4地址可以用点分十进制的形式表示为四个0到255之间的数字,例如192.168.1.100。
IPv6地址由128位二进制数字组成,被划分为8个16位的部分。IPv6地址可以用16进制的形式表示,例如2001:0db8:85a3:0000:0000:8a2e:0370:7334。
IP地址的二进制长度决定可以表示多少个地址。对于IPv4地址,由于有32个二进制位,可以表示的地址范围是2^32,即4,294,967,296个地址。但实际上,并非所有的地址都可供使用,因为有一些地址被保留作为特殊用途,例如网络地址、广播地址等。
通常,我们使用"子网掩码"来确定可用地址的范围。子网掩码是一个32位的二进制数,用于将IP地址划分为网络部分和主机部分。子网掩码中1的位数决定网络部分的位数,0的位数决定主机部分的位数。
例如,一个IP地址的子网掩码为255.255.255.0,那么网络部分占用24个二进制位,主机部分占用8个二进制位。在该网络中可以表示的主机数量为2^8=256个(不包括网络地址和广播地址)。
要计算可用地址数,需要知道IP地址的二进制长度。对于IPv4地址,总共有32个二进制位。我们将其中x个位用于网络部分,那么剩下的32-x个位就可用于主机部分。
可用的主机地址数可以计算为2^(32-x)-2,其中减去2是因为网络地址和广播地址不能被使用。
例如,一个IPv4地址的子网掩码为255.255.255.0,那么网络部分占用24个二进制位,主机部分占用8个二进制位。可用的主机地址数就是2^(32-24)-2=254个。
同理,对于IPv6地址,总共有128个二进制位。我们将其中x个位用于网络部分,那么剩下的128-x个位就可用于主机部分。可用的主机地址数可以计算为2^(128-x)。