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 """