在 C# 中重叠 IP
Overlapping IP's in C#
好的,我正在用 C# 编写程序,如果您愿意,我会尝试检测重叠的 IP 池或重叠的子网通配符。我使用 NOT 逻辑将其从通配符转换为子网。现在我必须检测 IP 是否重叠。
一个例子:
192.168.1.1 255.255.0.0
重叠
192.168.1.1 255.255.255.0
所以我希望我的代码能够检测到这一点。有没有人知道这件事。
感谢任何帮助。
您需要将 IP 和子网掩码从点分十进制表示法转换为 32 位整数。让我们称它们为 ip1_addr
、ip2_addr
、ip1_msk
、ip2_msk
.
先比较两个mask,看哪个更小(mask值越小,范围越大),第二步用那个。然后对每个 ip 地址和子网掩码进行按位与,并检查结果是否相同 ip1_addr & mask == ip2_addr & mask
.
好的,我正在用 C# 编写程序,如果您愿意,我会尝试检测重叠的 IP 池或重叠的子网通配符。我使用 NOT 逻辑将其从通配符转换为子网。现在我必须检测 IP 是否重叠。 一个例子:
192.168.1.1 255.255.0.0
重叠
192.168.1.1 255.255.255.0
所以我希望我的代码能够检测到这一点。有没有人知道这件事。
感谢任何帮助。
您需要将 IP 和子网掩码从点分十进制表示法转换为 32 位整数。让我们称它们为 ip1_addr
、ip2_addr
、ip1_msk
、ip2_msk
.
先比较两个mask,看哪个更小(mask值越小,范围越大),第二步用那个。然后对每个 ip 地址和子网掩码进行按位与,并检查结果是否相同 ip1_addr & mask == ip2_addr & mask
.