class Adresse4VIP:
    def __init__(self, adresse:str, booleen=True):
        """ constructeur"""
        self.adresse = ...    # l'adresse saisie est de type chaîne de caractères
        self.attribuee = booleen  # True lorsque l'adresse est attribuée à un poste informatique

    def liste_octet(self):
        """renvoie une liste de nombres entiers,
           la liste des octets de l'adresse IP"""
        return [int(i) for i in self.adresse.split(".")]

    def est_reservee(self):
        """renvoie True si l'adresse IP est une des deux adresses
           réservées, False sinon"""
        return ...
    
    def get_attribuee(self):
        """ renvoie la valeur de l'attribut attribuee"""
        ...
    
    def liberer(self):
        """ Dans les cas des adresses non réservées :
        modifie l'attribut attribuee pour signifier que l'adresse IP n'est plus attribuée"""
        if ...:
            self.attribuee = False
        
    def obtenir_adresse_suivante(self):
         """renvoie
           * l'adresse self si celle-ci n'est pas encore attribuée  
           * l'adresse IP qui suit l'adresse self
           si l'adresse suivante est possible et si l'adresse self est déjà attribuée  
           * 'impossible' sinon"""
        if not self.attribuee:   
            return ...
        elif ...<254 :   
            octet_nouveau = ... + ...
            return '172.25.3.' + ... 
        else:
            return 'impossible'