diff --git a/gestion/iptools.py b/gestion/iptools.py index 966a0f61..a130e6a0 100755 --- a/gestion/iptools.py +++ b/gestion/iptools.py @@ -22,9 +22,9 @@ def QuadToDec(ip) : if len(test)!=4 : raise ValueError('IP Invalide') ip_dec = 0 for z in range(0,4) : - n = int(test[z]) - if n<0 or n>255 : raise ValueError('IP Invalide') - ip_dec += n * ( 256**(3-z) ) + n = int(test[z]) + if n<0 or n>255 : raise ValueError('IP Invalide') + ip_dec += n * ( 256**(3-z) ) __QuadToDecDone[ip] = ip_dec return ip_dec @@ -35,42 +35,42 @@ def DecToQuad(ip_dec) : ip_dec est l'IP en base 10 """ try : - return "%d.%d.%d.%d" % ( \ + return "%d.%d.%d.%d" % ( \ ip_dec/(256**3) , (ip_dec%(256**3)) / (256**2) , ( (ip_dec%(256**3)) % (256**2) ) / 256 , ( (ip_dec%(256**3)) % (256**2) ) % 256 ) except : - raise ValueError('IP Invalide') + raise ValueError('IP Invalide') def param(net) : """ net est un résau fourni sous la forme xxx.xxx.xxx.xxx/yy si donnée valide retourne un dictionnaire : - { 'network' : xxx.xxx.xxx.xxx , - 'netmask' : yyy.yyy.yyy.yyy , - 'broadcast' : zzz.zzz.zzz.zzz } + { 'network' : xxx.xxx.xxx.xxx , + 'netmask' : yyy.yyy.yyy.yyy , + 'broadcast' : zzz.zzz.zzz.zzz } sinon retourne {} """ reseau = {} ip, mask = net.split('/') try : - mask = int(mask) - dec_ip = QuadToDec(ip) - if dec_ip == -1 : raise + mask = int(mask) + dec_ip = QuadToDec(ip) + if dec_ip == -1 : raise except : - return {} + return {} # Calcul du netmask dec_netmask=0 non_dec_netmask=0 # On calcule aussi le complémentaire for i in range(0,32) : - if i < mask : - dec_netmask += 2**(31-i) - else : - non_dec_netmask += 2**(31-i) - + if i < mask : + dec_netmask += 2**(31-i) + else : + non_dec_netmask += 2**(31-i) + reseau['netmask'] = DecToQuad(dec_netmask) # Calcul du network @@ -92,19 +92,19 @@ def AddrInNet(ip,net) : r = False for ne in net : - n = param(ne) - if ip == n['broadcast'] or ip ==n['network'] : - return False - r = r or QuadToDec(n['netmask']) & QuadToDec(ip) == QuadToDec(n['network']) - + n = param(ne) + if ip == n['broadcast'] or ip ==n['network'] : + return False + r = r or QuadToDec(n['netmask']) & QuadToDec(ip) == QuadToDec(n['network']) + return r def AddrInNets(ip,nets) : """ Vérifie si l'ip est au moins dans un des réseaux de la liste nets (voir AddrInNet) """ for net in nets : - if AddrInNet(ip,net) : - return True + if AddrInNet(ip,net) : + return True return False if __name__ == '__main__' :