bin(45)'0b101101'
L’objectif est d’écrire une fonction meme_sous_reseau(ip_a, ip_b, masque) qui renvoie un booléen indiquant si les machines A et B font partie du même sous-réseau.
On rappelle quelques instructions qui pourront s’avérer utiles :
['bonjour', 'à', 'tous', '!']
def et_logique(bit1, bit2):
"""
Renvoie le résultat de l'opération logique bit1 ET bit2.
Entrées : deux string d'1 caractère ('0' ou '1')
Sortie : string
"""
# à vous de jouer !
pass
assert et_logique('0', '0') == '0'
assert et_logique('0', '1') == '0'
assert et_logique('1', '0') == '0'
assert et_logique('1', '1') == '1'
print("Tests réussis !")Traceback (most recent call last):
File "<input>", line 18, in <module>
File "<input>", line 12, in test_et_logique
AssertionError
Error:
def entier_en_mot_binaire(entier, longueur_mot_binaire):
"""
Renvoie un mot binaire correspondant à l'entier.
Entrées :
entier : int
longueur_mot_binaire : int de longueur supérieure ou égale au nombre de bits nécessaires
pour convertir entier en base 2
Sortie : string de longueur longueur_mot_binaire
"""
# à vous de jouer !
pass
assert entier_en_mot_binaire(1, 8) == '00000001'
assert entier_en_mot_binaire(192, 8) == '11000000'
assert entier_en_mot_binaire(168, 8) == '10101000'
print("Tests réussis !")def adresse_reseau_ip(ip, masque):
"""
Renvoie l'adresse réseau de l'adresse ip avec le masque masque.
Entrées :
ip : string contenant une IP (ex "192.168.0.1")
masque : entier du masque en notation CIDR (ex : 24)
Sortie : string de 32 caractères
"""
# à vous de jouer !
pass
assert adresse_reseau_ip("192.168.0.1", 24) == '11000000101010000000000000000000'
assert adresse_reseau_ip("192.168.1.3", 24) == '11000000101010000000000100000000'
assert adresse_reseau_ip("192.168.0.1", 20) == '11000000101010000000000000000000'
assert adresse_reseau_ip("192.168.1.3", 20) == '11000000101010000000000000000000'
print("Tests réussis !")def meme_sous_reseau(ip_a, ip_b, masque):
"""
Renvoie un booléen indiquant si ip_a et ip_b sont dans un même réseau de masque masque.
Entrées :
ip_a: string contenant une IP (ex "192.168.0.1")
ip_b : string contenant une IP
masque : entier du masque en notation CIDR (ex : 24)
"""
# à vous de jouer !
pass
assert meme_sous_reseau("192.168.0.1", "192.168.1.3", 24) == False
assert meme_sous_reseau("192.168.0.1", "192.168.1.3", 20) == True
assert meme_sous_reseau("192.168.0.1", "192.168.0.3", 30) == True
print("Tests réussis !")