1

我正在编写一个小型应用程序来自动化我们在设置新机器时每天必须做的很多事情。我现在有多达 18 个新盒子要设置,所以我真的需要添加这个小功能,它可以让我更轻松地添加 IP 地址。

我的基于块号生成子网的函数工作正常,但我希望能够输入类似 192.168.1.10/29 的内容并将所有 5 个 IP 地址添加到 NIC。我添加IP的功能很好,但我的问题是......

我需要像这样手动编码吗?(显然是伪代码而不是工作示例)

int 29block = 5
int 28block = 12

for (i = 0; i<29block; i++)
{
     string ip = ipinputbox.text;
     ip = ip + 2 + i; // 2 being the value to compensate for gateway/etc.
     AddIpAddress(ip);
}

在此处输入图像描述

4

1 回答 1

0

我创建了一个可以解释子网地址并返回由该子网表示的地址的可枚举集合的类。因此,例如, ip 子网192.168.1.10/29应返回192.168.1.10属于 代表的子网(/29即掩码)之后(包括)的所有地址255.255.255.248。此子网中有 6 台有效主机,.9.14. 所以返回的列表将是

192.168.1.10
192.168.1.11
192.168.1.12
192.168.1.13
192.168.1.14

这是我正在使用的示例代码(在 LINQPad 中):http://pastebin.com/d6EE2bpj,以及测试代码生成的示例输出:

==192.168.1.10/29==
192.168.1.10
192.168.1.11
192.168.1.12
192.168.1.13
192.168.1.14
==72.26.196.160/29==
72.26.196.161
72.26.196.162
72.26.196.163
72.26.196.164
72.26.196.165
72.26.196.166

该代码根据子网大小动态生成位掩码,因此对于任何起始 IP 地址和任何子网大小,它都应该是完全通用的。

于 2012-04-04T00:04:00.070 回答