Requisitos previos: enrutamiento entre dominios sin clases (CIDR)
Dadas dos direcciones IP en notación CIDR , determine si pertenecen a la misma red o a una red diferente. Se dice que dos direcciones IP están en la misma red si la ID de red de ambas direcciones IP es la misma.
Ejemplos:
Entrada: IP1 = 192.168.1.0/8, IP2 = 192.32.45.7/8
Salida: Misma red
Explicación: El número de bits en el ID de red de ambas direcciones IP es de 8 bits y los primeros
8 bits (es decir, el primer octeto) de ambas las direcciones IP son las mismas (es decir, 192). Por lo tanto, ambas direcciones IP
pertenecen a la misma red.Entrada: IP1 = 17.53.128.0/20, IP2 = 17.53.127.0/20
Salida: Red diferente
Explicación: La cantidad de bits en la ID de red de ambas direcciones IP es de 20 bits, pero los primeros
20 bits de ambas direcciones IP son diferentes . Por lo tanto, ambas direcciones IP pertenecen a una
red diferente.
Para implementarlo, usaremos el método ip_network y network_address del módulo ipaddress de Python 3.3.
# importing ip_network from ipaddress module from ipaddress import ip_network def sameNetwork(IP1: str, IP2: str) -> str: a = ip_network(IP1, strict = False).network_address b = ip_network(IP2, strict = False).network_address if(a == b) : return "Same Network" else : return "Different Network" # main function if __name__ == '__main__' : # Same Network print(sameNetwork('192.168.1.0/8', '192.32.45.7/8')) # Different Network print(sameNetwork('17.53.128.0/20', '17.53.127.0/20'))
Producción :
Same Network Different Network
Publicación traducida automáticamente
Artículo escrito por chirags_30 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA