ipnetwork
ipnetwork copied to clipboard
IPNetwork command line and C# library take care of complex network, IP, IPv4, IPv6, netmask, CIDR, subnet, subnetting, supernet, and supernetting calculation for .NET developers. It works with IPv4 as...
Improves performance and reduces allocations in the scenario for checking one address against many `IPNetwork` instances. Effectively saves ~36 bytes for each network that is checked, how many nanoseconds saved...
Help wanted. If you know how to create a choco (https://chocolatey.org/) package to install ipnetwork.exe, I'll gladly accept contribution.
CIDR ranges /32, and /31 when given to the library to parse and then querying range.Usable, I get back a (0) where the .FirstUsable and .LastUsable properties are correctly showing...
I love your C# class here. Extremely useful. However, there is a missing piece in this class library that would be extremely helpful: get the next valid IP address. Is...
I have an IPAddress value. Is there a simple way to produce an IPNetwork object that represents this single IP? (Implied /32 or /128 as applicable.) A static function of...
Hi, Great library. I wanted the actual first and last IP addresses in a range, so it would be helpful if there was a .Last() and .First() method as well...
Most if not all `Parse` methods in netstandard2.1 accept `ReadOnlySpan`
Hi Luc, The behavior of `Parse("192.0.43.8")` of v2.2.0 is: - Network = 192.0.43.0 - Cidr =24 Apparently this is class-full. Now consider `Parse("192.0.43.0")`: - Network = 192.0.43.0 - Cidr =24...
Hi Luc, https://github.com/lduchosal/ipnetwork/blob/master/src/System.Net.IPNetwork/IPNetwork.cs `public bool Contains(IPAddress ipaddress)` each time recreates `CreateBroadcast(ref uintNetwork, this._netmask, this._family);`. All input are fields. Why not recreate the broadcast address only when any of the input...
Hi Luc, Being about integrating `IPNetwork` for the UDP part of my own piece of open source software [YAT](https://sourceforge.net/p/y-a-terminal), I stumbled accross a few typos in your source code. Here...