问题描述
IPv4中的IP地址有二进制和十进制,十进制格式是由二进制翻译过来的。二进制的IP地址共有32位,例如10000011,01101011,0000011,00011000。每八位组用一个十进制表示,并以点分隔,称为点分法。如这个二进制地址的点分法表示为131.107.3.24。
IP地址按照类的等级号,分为五类:A、B、C、D、E。如下图所示,网络部分(网络号)和主机部分(主机号)随不同等级在32位中所占的位数不同。
l A类IP地址:用于支持巨型网络。它的取值范围为1.0.0.0~127.255.255.255,共有126个A类网络,每一个A类网络能支持16777214个不同的主机地址。
l B类IP地址:用于支持大中型网络。它的取值范围为128.0.0.0~191.255.255.255,共有16384个B类网络,每一个B类网络能支持65534个主机地址。
l C类IP地址:用于支持小型网络。它的取值范围为192.0.0.0~223.255.255.255,共有2097152个C类网络,每一个C类网络仅能支持254个主机地址。
l D类IP地址:D类地址是专为IP网络中的组播而设置的。它的取值范围为224.0.0.0~239.255.255.255。
IP地址的屏蔽码
由于32位的IP地址分为两个组成部分:网络号和主机号。子网掩码的作用就在于将这两个部分区分开来。
子网掩码IP协议标准规定:每一个使用子网的网点都选择一个32位的位模式,若位模式中的某位置1,则对应IP
地址中的某位为网络地址(包括网间网部分和物理网络号)中的一位;若位模式中的某位置0,则对应IP地址中的某位为主机地址中的一位。
基本要求
(1)编写程序,生成20万个IP地址,且这20万个地址不允许出现重复。地址分别用二进制和十进制表示,保存在文件中。
(2)统计20万个地址中A、B、C、D类的个数。
(3)分类按页显示二进制和十进制的IP地址。每屏幕显示15条信息,可以用”U”、”N”键完成上下翻页显示结果。
(4)使程序自动分析IP地址,并为每类IP地址自动生成“子网掩码”。并用二进制和十进制表示生成的子网掩码。
(5)对于给定的IP地址,用子网掩码作用于IP地址,取出其中的网络号和主机号。
类别 子 网 掩 码 位 模 式 子网掩码 A 11111111.00000000.00000000.00000000 255.0.0.0 B 11111111.11111111.00000000.00000000 255.255.0.0 C 11111111.11111111.11111111.00000000 255.255.255.0
如果在Internet网上进行通信的两台主机的IP地址分别为192.83.192.10和192.83.192.32,那么子网掩码 255.255.255.0分别对两个IP地址进行与(and)运算后,得出网络号和主机号,并且结果一致,可以判断这两个IP地址属于同一个网络。