Tag: cidr

CIDR子网是否有本机.NET类型?

编写一个类来存储/validation像192.168.0.0/16这样的东西很简单,但我很好奇.NET中是否存在本机类型? 我想它会像IPAddress一样工作: CIDR subnet = CIDR.Parse(“192.168.0.0/16”); 基本上,它只需要确保您使用IPv4或IPv6地址,然后确定您指定的位数对该类型有效。

列出IP子网中的所有地址

我需要获取子网中包含的所有IP地址,我正在尝试使用IPnetwork 例如,子网192.168.1.0/29将具有以下输出: // Output // 192.168.1.0 // 192.168.1.1 // 192.168.1.2 // 192.168.1.3 // 192.168.1.4 // 192.168.1.5 // 192.168.1.6 // 192.168.1.7 这是我的代码: IPNetwork ipn = IPNetwork.Parse(“192.168.1.0/29”); IPAddressCollection ips = IPNetwork.ListIPAddress(ipn); foreach (IPAddress ip in ips) { Console.WriteLine(ip); } // Output // 192.168.1.0 // 192.168.1.0 // 192.168.1.0 // 192.168.1.0 // 192.168.1.0 // 192.168.1.0 如您所见,这不是理想的结果。 我错过了什么? 有没有其他工具或方法来完成这项工作? 我已经设法破解了一些东西,但它并不漂亮,我不确定它是否正确枚举更大的子网。

如何使用CIDR表示法查看IP地址是否属于一系列IP?

这里我有一个静态参考我需要检查的范围: private static List Ip_Range = new List() { “12.144.86.0/23”, “31.201.1.176/30”, “46.36.198.101/32”, “46.36.198.102/31”, “46.36.198.104/31”, “46.136.172.0/24”, “63.65.11.0/24”, “63.65.12.0/25”, “63.65.12.128/26”, “63.65.12.192/27”, “63.65.12.224/28”, “63.65.12.240/29”, “63.65.12.248/30”, “63.65.12.252/31”, “63.65.12.254/32”, “65.173.56.0/21”, “67.23.241.179/32”, “67.23.241.180/30”, “67.23.241.184/29”, “67.23.241.192/30”, “67.23.241.196/31”, “67.23.241.198/32”, “72.32.164.56/29”, “72.46.244.32/28”, “74.91.16.48/29”, “74.91.16.208/29”, “74.91.20.48/28”, “74.91.20.64/29”, “74.112.134.120/29”, “74.112.135.104/29”, “74.205.37.16/29”, “78.24.205.32/28”, “98.129.27.88/29”, “98.129.91.40/29”, “166.114.0.0/16”, “167.157.0.0/16”, “174.143.165.80/29”, “186.0.156.0/22”, “186.2.0.0/17”, “186.27.0.0/17”, “190.0.248.0/21”, “190.3.184.0/21” }; 这是我看到它如何工作的一些伪代码: public static […]