jsakamoto / ipaddressrange

.NET Class Library for range of IP address, both IPv4 and IPv6.
Mozilla Public License 2.0
370 stars 71 forks source link

Method which returns CIDR bit #84

Open ktdann opened 5 months ago

ktdann commented 5 months ago

Hi,

Here is a code that does NOT work, but explains what I want to do. var ipBegin = IPAddress.Parse("192.168.0.0"); var rangeA = new IPAddressRange(ipBegin, maskLength: 24); rangeA.ToCidrBit() // is 24

I'm looking for a way to get the CIDR bit (or maskLength, as this project calls it) from the existing IPAddressRange object. (none exist)

And the closest I've found is by, see below, var ipSubnet = IPAddress.Parse("255.255.255.0"); IPAddressRange.SubnetMaskLength(ipSubnet); // is 24

However, this will not help me as I can't find a way to get the subnet mask from the existing IPAddressRange object. Is there a way to do this?

jsakamoto commented 5 months ago

Hi @ktdann,

The GetPrefixLength() method of the IPAddressRange object might work for that purpose, like the ToCidrBit() method in your fictitious sample programs. Could you try it out?

ktdann commented 5 months ago

Spot on. That certainly went past my radar :) I appreciate your help.