docs: def infer_netmask (addr):
    """
    Uses network classes to guess the number of network bits
    """
    addr = int(addr)
    if addr == 0:
      # Special case -- default network
      return 32-32 # all bits wildcarded
    if (addr & (1 << 31)) == 0:
      # Class A
      return 32-24
    if (addr & (3 << 30)) == 2 << 30:
      # Class B
      return 32-16
    if (addr & (7 << 29)) == 6 << 29:
      # Class C
      return 32-8
    if (addr & (15 << 28)) == 14 << 28:
      # Class D (Multicast)
      return 32-0 # exact match
    # Must be a Class E (Experimental)
    return 32-0