public static IPAddress RangeMin( [NotNull] this IPAddress thisAddr, byte range ) {
if( thisAddr == null ) throw new ArgumentNullException( "thisAddr" );
if( range > 32 ) throw new ArgumentOutOfRangeException( "range" );
int thisAsInt = thisAddr.AsInt();
int mask = (int)NetMask( range );
return new IPAddress( (uint)IPAddress.HostToNetworkOrder( thisAsInt & mask ) );
}