本文深入探讨了IP地址的有效性验证方法及子网划分技术,旨在为网络设计与安全管理提供理论依据和技术支持。
课程设计要求在掌握IP地址表示方法及子网划分方法的基础上完成以下任务:编写一个程序(命名为ip_test),该程序的命令行格式为:
```
ip_test subnet/mask ip_addr
```
其中,`subnet`代表子网号;`mask`是一个数值,表明了连续1的数量来定义子网掩码;而`ip_addr`是需要测试的有效IP地址。例如:如果要验证202.113.16.10的合法性,并且该地址属于子网202.113.16.0(其子网掩码为255.255.255.0),则命令行应写成`ip_test 202.113.16.0/24 202.113.16.10`。这是因为,连续的二进制位1的数量为24(即子网掩码是连续的24个“1”)。
任务包括:
- 验证subnet和ip_addr的有效性。
- 在验证IP地址时需要自行编写代码,并不依赖任何inet函数。
- 例如,以下IP地址均被视为无效:`123..2.1`, `123.23$.2.1`, `123.2345.2.1`, 和 `123.23.45.2.1`
- 验证掩码的有效性。
- 确定ip_addr是否属于指定的子网subnet(在IP地址有效的情况下)。
程序输出应包含以下信息:
- 命令行中的`ip`是否合法;
- 掩码是否合法,如果非法需提供原因说明;
- `ip_addr` 是否归属于子网`subnet`。