子网掩码基础知识

子网掩码基础知识

子网掩码由连续的1和连续的0组成,1表示网络位,0表示主机位。

1. 基础概念

  • IPv4地址:由32位二进制组成,通常表示为4个十进制数(如192.168.1.0)。
  • 子网掩码:用于划分网络和主机部分。例如,255.255.255.0(即/24)表示前24位为网络号,后8位为主机号。

2. 地址数量计算

  • 公式
    可用主机地址数 = (2^{(32 - \text{子网掩码位数})} - 2)
    (减2是因为去掉网络地址和广播地址)

  • 常见子网示例

    • /24(如255.255.255.0):
      (2^8 - 2 = 254)个可用地址(范围192.168.1.1~192.168.1.254)。
    • 超过256的情况
      若子网掩码位数更小(如/23),则主机部分有9位,地址数为 (2^9 - 2 = 510)个。

3. 为什么会有误解?

  • /24子网确实有256个地址(含网络和广播地址),但可用主机地址是254个。
  • 更大的子网(如/16)可包含(2^{16} - 2 = 65534)个可用地址。

4. 关键结论

  • 子网地址数不限于256,实际由子网掩码决定。
  • 最小子网是/30(4个地址,2个可用),最大可达/8(约1600万个地址)。

5. 计算子网的ip数量方法

  • 子网掩码为255.255.240.0,计算为(256-240)*256=4096个
  • 子网掩码为255.255.248.0,计算为(256-248)*256=2048个

示例表

子网掩码 主机位数 总地址数 可用地址数 掩码
/24 (前24位) 8 256 254 255.255.255.0
/23 (前23位) 9 512 510 前23位是1,后9位是0
/16 (前16位) 16 65536 65534 255.255.0.0

前23位掩码计算步骤:

二进制转换

前23位的二进制表示:
11111111.11111111.11111110.00000000
(前23位全1,第24位为0,剩余全0)

分段转换为十进制

   第一段(前8位):11111111 → 255
   第二段(9-16位):11111111 → 255
   第三段(17-24位):11111110 → 254(因为11111110 = 128+64+32+16+8+4+2 = 254)
   第四段(剩余位):00000000 → 0

最终结果

前23位的子网掩码为:
255.255.254.0

java中ip地址转数值的方式

/**
     * ipV4地址转换成Long类型
     * @param ipAddress
     * @return
     */
    public static long ConvertIpv4ToLong(String ipAddress) {
        String[] ipSegments = ipAddress.split("\\.");
        long result = 0;
        for (int i = 0; i < ipSegments.length; i++) {
            int power = 3 - i;
            int segmentValue = Integer.parseInt(ipSegments[i]);
            result += segmentValue * Math.pow(256, power);
        }
        return result;
    }

    /**
     * ipV6地址转换成Long类型
     * @param ipV6Address
     * @return
     */
    public static long ConvertIpv6ToLong(String ipV6Address) {
        String[] hexSegments = ipV6Address.split(":");
        long result = 0;
        for (int i = 0; i < hexSegments.length; i++) {
            int power = 7 - i;
            int segmentValue = Integer.parseInt(hexSegments[i], 16);
            result += segmentValue * Math.pow(65536, power);
        }
        return result;
    }
posted @ 2025-10-14 13:25  张占岭  阅读(75)  评论(0)    收藏  举报