Verifier adresse ip (verifier si l'adresse ip est valable)

Contenu du snippet

Ce code permet de verifier si l'adresse ip enregistré dans un char est correct:
c'est a dire si il n'y a bien que des chiffres et des points, si elle a le bon format, et si les nombres sont bien inferieurs a 256

Attention j'integre directement le code de la fonction (pour le boulot)
A vois de le traduire pour votre utilisation.

Source / Exemple :


int verifip(char x[15]) {

// Initialisation des variables

        int i=0;
        int pts = 0;
        int tab[14];        {
                if (x[i] >= (char)48 && x[i] <= (char)57) { /* Verifie chiffres

  • /
j = x[i]-'0' ; ip[k] = (ip[k] * 10) + j; tab[i] = 1; tmp++; } else if (x[i] == (char)46) { /* Verifie "." */ k++; tab[i] = 2; tmp++; } i++; } while (i <= strlen(x)); tmp = 0; // Test si l'adresse est bien de la forme AAA.BBB.CCC.DDD if (tab[0] == 1) { tmp++; do { if (tab[i] == 2 && tab[i-1] == 1) { tmp++; } else if (tab[i] == 1 && tab[i-1] == 2) { cerr << "Erreur!! , une adresse IP est au format: AAA.BBB.CCC.DDD" << endl; resultat--; } resultat++; // Test si les nombres sont bien inferieurs a 256 if ((ip[0] < 256) && (ip[1] < 256) && (ip[2] < 256) && (ip[3] < 256)) { resultat++; } else { cerr << "Erreur!! , Les nombres de l'adresse IP doivent être inferieur à 256." << endl; resultat--; } if (resultat == 3) { return(1); } else { return(0); } } tmp++; } else if (tab[i] == 2 && tab[i-1] == 2) { tmp--; } i++; } while (i <= strlen(x)); } if (tmp != 7) { if (tmp != strlen(x)) { cerr << "Erreur!! , il n'y a que des chiffres et des points dans une adresse IP." << endl; resultat--; } resultat++; i=1; int ip[3]; int j=1; int tmp=0; int resultat = 0; for (int a=0;a <=14;a++) { tab[a] = 0; } for (int a=0;a<=3;a++) { ip[a] = 0; } int k = 0; // Test si l'adresse IP entré contient bien que des chiffres et des "." do

Conclusion :


Je me rappele plus commebnt on déclare un booleen, donc la fonction donne un resultat entier avec 2 valeurs.
A réviser!!

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.