FRstudy.me offre une solution complète pour toutes vos questions. Trouvez les réponses dont vous avez besoin rapidement et précisément avec l'aide de nos membres de la communauté bien informés et dévoués.
Sagot :
Réponse :
def test_appartenance(first_ip, second_ip, masque):
first_ip = first_ip.split('.')
second_ip = second_ip.split('.')
masque = masque.split('.')
ip_de_sous_reseau = []
plage_ip = 0
for element in masque:
if element == '0':
break
plage_ip += 1
for i in range(0, plage_ip - 1):
ip_de_sous_reseau.append(first_ip[i])
while len(ip_de_sous_reseau) < len(first_ip):
ip_de_sous_reseau.append('0')
for i in range(0, plage_ip):
if first_ip[i] == second_ip[i]:
continue
else:
return False, '.'.join(ip_de_sous_reseau)
return True, '.'.join(ip_de_sous_reseau)
print(test_appartenance('192.168.0.1', '192.168.0.2', '255.255.255.0'))
print(test_appartenance('192.168.5.1', '192.168.0.2', '255.255.255.0'))
Explications :
On déclare une fonction test_appartenance qui prend en argument une première ip, une deuxième et la masque.
On convertit ensuite first_ip, second_ip et masque en liste, pour pouvoir vérifier leurs valeurs par la suite.
La variable ip_sous_reseau servira de liste contenant, évidemment, l'ip de sous réseau, la variable plage_ip elle, contiendra l'information qui nous permet de délimiter la plage ip (ex: plage_ip = 3 = 255.255.255.0), boucle for qui suit servira donc à donner une valuer à la variable plage_ip. On ajoute ensuite les éléments pour constituant l'ip de sous réseau avec une boucle for, en utilisant plage_ip.
Enfin, nous utilisons une nouvelle fois la boucle for pour vérifier grace à plage_ip si les éléments de first_ip et second_ip sont les mêmes.
Retourne True et la plage IP si vrai, sinon Faux et la plage IP.
Merci de votre participation active. Continuez à poser des questions et à partager vos réponses. Ensemble, nous pouvons créer une ressource de connaissances précieuse pour tous. FRstudy.me est toujours là pour vous aider. Revenez pour plus de réponses à toutes vos questions.