Calculadora de subredes IPv4 e IPv6: red, máscara, difusión y rango de direcciones

Escribe una dirección IP con su prefijo, como 192.168.1.10/24, o con su máscara, como 192.168.1.10 255.255.255.0, y la calculadora te da la red, la máscara, la dirección de difusión, el primer y el último equipo y cuántas direcciones caben. También la divide en subredes más pequeñas y funciona con IPv6. Todo se calcula en tu navegador.

Ejemplos:

Qué es cada dato

  • Prefijo (/24): cuántos bits de la dirección identifican la red. El resto identifica a cada equipo. Con /24 son 24 bits de red y 8 de equipo: 28 = 256 direcciones.
  • Máscara: el mismo prefijo escrito como dirección, con unos en los bits de red: /24 es 255.255.255.0. El comodín (wildcard) es al revés, 0.0.0.255, y lo usan las listas de acceso de algunos routers.
  • Red: la primera dirección del bloque. En IPv4 no se asigna a ningún equipo.
  • Difusión (broadcast): la última dirección del bloque, que llega a todos los equipos de la red. Tampoco se asigna. Por eso una red IPv4 tiene dos direcciones menos de las que caben: una /24 admite 254 equipos.
  • /31 y /32: las excepciones. Una /31 tiene solo dos direcciones y se usa en enlaces entre dos routers, sin red ni difusión (RFC 3021). Una /32 es una sola dirección.
  • IPv6: no hay difusión, así que se pueden usar todas las direcciones, y las redes locales son casi siempre /64. Un proveedor suele dar a cada cliente un /48 o un /56 para que lo divida en redes /64.

La calculadora también dice de qué tipo es la red: privada (10.0.0.0/8, 172.16.0.0/12 y 192.168.0.0/16), compartida por los operadores (100.64.0.0/10, el CGNAT), de enlace local, de documentación, multidifusión o pública. Para entender cómo encajan las direcciones, los puertos y el NAT, lee nuestra guía de redes básicas.

Cómo se calcula a mano

Con 192.168.1.10/24: la dirección en binario, y la máscara, con 24 unos seguidos de 8 ceros. La red se obtiene con un Y lógico (AND) bit a bit entre las dos, que deja la parte de red y pone a cero la de equipo: 192.168.1.0. La difusión es lo contrario: la parte de red y la de equipo toda a unos: 192.168.1.255.

Para dividir, se alargan los bits de red. Una /24 partida en /26 da 226 − 24 = 4 subredes de 64 direcciones cada una: .0, .64, .128 y .192.

Calcular subredes en Python

Python lo trae de serie en el módulo ipaddress, para IPv4 e IPv6:

import ipaddress

red = ipaddress.ip_network("192.168.1.10/24", strict=False)   # strict=False: admite una dirección de dentro
print(red)                                  # la red
print(red.netmask, red.hostmask)            # máscara y comodín
print(red.broadcast_address)                # difusión
print(red.num_addresses - 2)                # equipos utilizables
print(ipaddress.ip_address("192.168.1.77") in red)
print(red.is_private)
for subred in red.subnets(new_prefix=26):   # dividir en cuatro /26
    print(subred)

v6 = ipaddress.ip_network("2001:db8::1/64", strict=False)
print(v6, v6.num_addresses)
$ python3 subredes.py192.168.1.0/24
255.255.255.0 0.0.0.255
192.168.1.255
254
True
True
192.168.1.0/26
192.168.1.64/26
192.168.1.128/26
192.168.1.192/26
2001:db8::/64 18446744073709551616

Más herramientas para desarrolladores: el traductor de cron a español, el formateador de JSON, el decodificador de JWT y el conversor de fecha Unix. Todas, en decodigo.com/herramientas.

Rangos especiales: registro de direcciones IPv4 e IPv6 de usos especiales de la IANA, RFC 1918, RFC 3021 y RFC 5952 (forma corta de IPv6). Los cálculos se compararon con el módulo ipaddress de Python en 2,500 redes al azar de IPv4 e IPv6, con su división en subredes: coinciden en todas.