抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

网络中IP 为什么按段划分

IP A、B、C、D段按什么划分

在网络中,IP地址由四个字节组成,每个字节范围从0到255,用点分十进制表示法来表示。IP地址通常被分为四个段,通常称为A段、B段、C段和D段。这些段不同的划分方法是根据IP地址的第一个字节来确定的,根据这个字节的值,可以判断该IP地址属于哪个段。具体划分如下:

  • A段:如果第一个字节的值大于等于0且小于128,则该IP地址属于A段。A段的地址范围是0.0.0.0 ~ 127.255.255.255。其中,0.0.0.0属于保留地址,127.0.0.1属于回环地址。

  • B段:如果第一个字节的值大于等于128且小于192,则该IP地址属于B段。B段的地址范围是128.0.0.0 ~ 191.255.255.255。

  • C段:如果第一个字节的值大于等于192且小于224,则该IP地址属于C段。C段的地址范围是192.0.0.0 ~ 223.255.255.255。

  • D段:如果第一个字节的值大于等于224,则该IP地址属于D段。D段的地址范围是224.0.0.0 ~ 239.255.255.255。D段地址用于多播。

每个IP段都有它自己的意义和用途,了解这些信息可以帮助你更好地理解网络中的IP地址。

在网络中,IP地址通常被分为四个段,通常称为A段、B段、C段和D段。这些段的划分是按照IP地址的第一个字节来确定的。以下是这些段的具体含义:

  • A段:如果一个IP地址的第一个字节的值在0到127之间,那么该IP地址属于A段。A段的网络号占用了IP地址的第一个字节,而主机号占用了后三个字节。A段可以使用的IP地址数量有2的24次方减去2个已被占用的地址,即16777214个可用的IP地址。A段通常被用来为世界上的大型组织、公司或互联网服务提供商分配IP地址。

  • B段:如果一个IP地址的第一个字节的值在128到191之间,那么该IP地址属于B段。B段的网络号占用了该IP地址的前两个字节,而主机号占用了后两个字节。B段可以使用的IP地址数量有2的16次方减去2个已被占用的地址,即65534个可用的IP地址。B段通常被用来为大型组织或互联网服务提供商的分支机构分配IP地址。

  • C段:如果一个IP地址的第一个字节的值在192到223之间,那么该IP地址属于C段。C段的网络号占用了该IP地址的前三个字节,而主机号占用了最后一个字节。C段可以使用的IP地址数量有2的8次方减去2个已被占用的地址,即254个可用的地址。C段通常被用来为小型公司或家庭网络分配IP地址。

  • D段:如果一个IP地址的第一个字节的值在224到239之间,那么该IP地址属于D段。D段是专门用来支持多播

CIDR 表示法

在 IP 网络中,CIDR 表示法用于表示特定 IP 地址或网络的子网掩码。CIDR 表示法由一个 IP 地址后跟一个斜杠 (/) 字符和一个表示子网掩码中的位数的数字组成。此数字决定了该网络中包含的 IP 范围的大小。

考虑到这一点,特定 /x 子网掩码中包含的 IP 范围可以计算如下:

  • 对于 /32 子网掩码,只有一个主机 IP 地址。

  • 对于 /31 子网掩码,有 2 个 IP 地址,保留范围内的第一个和最后一个地址。

  • 对于 /30 子网掩码,有 4 个 IP 地址,保留范围内的第一个和最后一个地址。

  • 对于 /29 子网掩码,有 8 个 IP 地址,保留范围内的第一个和最后一个地址。

  • 对于 /28 子网掩码,有 16 个 IP 地址,保留范围内的第一个和最后一个地址。

  • 对于 /27 子网掩码,有 32 个 IP 地址,保留范围内的第一个和最后一个地址。

  • 对于 /26 子网掩码,有 64 个 IP 地址,保留范围内的第一个和最后一个地址。

  • 对于 /25 子网掩码,有 128 个 IP 地址,保留范围内的第一个和最后一个地址。

  • 对于 /24 子网掩码,有 256 个 IP 地址,保留范围内的第一个和最后一个地址。

  • 对于 /23 子网掩码,有 512 个 IP 地址,保留范围内的第一个和最后一个地址。

  • 对于 /22 子网掩码,有 1024 个 IP 地址,保留范围内的第一个和最后一个地址。

  • 对于 /21 子网掩码,有 2048 个 IP 地址,保留范围内的第一个和最后一个地址。

  • 对于/20 子网掩码,有 4096 个 IP 地址,保留范围内的第一个和最后一个地址。

  • 对于/19 子网掩码,有 8192 个 IP 地址,保留范围内的第一个和最后一个地址。

  • 对于/18 子网掩码,有 16384 个 IP 地址,保留范围内的第一个和最后一个地址。

  • 对于/17 子网掩码,有 32768 个 IP 地址,保留范围内的第一个和最后一个地址。

  • 对于 /16 子网掩码,有 65536

对于子网掩码,IP作用划分

对于 /24 子网掩码,有 256 个 IP 地址,其中第一个地址(即网络地址)和最后一个地址(即广播地址)是保留的,不允许分配给主机使用。

这是因为在该子网掩码下,前三个字节(或称为“前缀”)用于表示网络地址,而最后一个字节用于表示主机地址。因此,第一个地址用于标识网络地址,最后一个地址用于进行广播。任何分配给主机的 IP 地址都必须在这两个地址之间。

这种保留的地址形式在所有的子网掩码类型中都是相似的,第一个和最后一个地址是保留的,不能用于分配给主机。这个规则是由 IP 地址分配规范定义的,旨在确保每个网络都有一个唯一的网络地址和广播地址。

获取合法的主机IP的/24子网掩码

/**

  *此代码将IP地址192.168.1.100转换为192.168.1.0/24这样的IP段,这表示该IP地址属于192.168.1.0这个子网中的IP地址。

  *使用getNetworkAddress()方法将IP地址的最后一位设为0,以获取网络地址(192.168.1.0)。

  *注:这个例子使用Apache Commons Net库中的SubnetUtils类对CIDR地址进行解析,你可以将其导入项目中,或者使用其他方法来解析CIDR地址。

  */

import java.net.InetAddress;

import java.net.UnknownHostException;

import java.util.Arrays;

import org.apache.commons.net.util.SubnetUtils;

import org.apache.commons.net.util.SubnetUtils.SubnetInfo;

public class IPRange {

    public static void main(String[] args) throws UnknownHostException {

        String ip = "192.168.1.100";

        InetAddress inetAddress = InetAddress.getByName(ip);

        byte[] address = inetAddress.getAddress();

        SubnetUtils subnetUtils = new SubnetUtils(getNetworkAddress(ip), "255.255.255.0");

        SubnetInfo subnetInfo = subnetUtils.getInfo();

        if (subnetInfo.isInRange(ip)) {

            System.out.println(ip + " is in the range " + subnetInfo.getCidrSignature());

        } else {

            System.out.println(ip + " is not in the range " + subnetInfo.getCidrSignature());

        }

    }

    private static String getNetworkAddress(String ip) {

        String[] parts = ip.split("\.");

        parts[3] = "0"; // set the last octet to 0

        return String.join(".", Arrays.copyOfRange(parts, 0, 4));

    }

}


评论