From aa42f6732887b8b1c17e448056871dac36ebb220 Mon Sep 17 00:00:00 2001 From: Valentin Samir Date: Wed, 3 Apr 2013 09:49:39 +0200 Subject: [PATCH] =?UTF-8?q?[iptools]=20Ajout=20de=20fonctions=20pour=20tes?= =?UTF-8?q?ter=20si=20un=20r=C3=A9seau=20est=20sous-r=C3=A9seau=20d'un=20a?= =?UTF-8?q?utre?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gestion/iptools.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gestion/iptools.py b/gestion/iptools.py index f6a64de3..4c46d1be 100755 --- a/gestion/iptools.py +++ b/gestion/iptools.py @@ -119,6 +119,25 @@ def AddrInNets(ip,nets) : return net return '' +def NetInNet(net1, net2) : + """ + net1 est de la forme xxx.xxx.xxx.xxx/yy + net2 est de la forme xxx.xxx.xxx.xxx/yy + Retourne True si net1 est un sous-réseaux de net2 + """ + n1 = param(net1, raw=True) + n2 = param(net2, raw=True) + s1 = net1.split('/')[1] + s2 = net1.split('/')[1] + return s1<=s2 and (n1['network'] == n2['network'] or AddrInNet(DecToQuad(n1['network']), net2)) + +def NetInNets(net1, nets): + """ Vérifie si le premier paramètre est un sous-réseau des réseaux de la liste du second paramètre""" + for net in nets: + if NetInNet(net1, net) : + return net + return '' + def is_crans(ip): """ Vérifie que l'ip est dans le réseau CRANS """