begin process at 2012 05 30 10:00:38
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

tite aide svp!!


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

tite aide svp!!

mercredi 6 août 2003 à 18:50:02 | tite aide svp!!

chris5874

salut tout le monde!
j'aurais besoinde votre aide svp!
je suis en train de développer un programme qui va lister toutes les ip contenues entre les ip de début et de fin(entrées par l'utilisateur)
vous trouverez ci dessous le source du projet!
merci d'avance pour votre aide!

ps:le prog ne liste pas correctement les ip,notamment qd on passe de 0.0.255.255 à 0.1.0.0(bug car après 0.0.255.255,le prog passe directement à 0.1.1.0)
encore une fois,merci d'avance pour votre aide!




#include <iostream.h>
#include <string.h>
#include <stdio.h>

int main()
{
char ip[16],temp,temp1,ipfin[16];
int longueur,longueurfin,n,n1,ip1=0,ip2=0,ip3=0,ip4=0,i=0,j=0,ip10=0,ip20=0,ip30=0,ip40=0;

cout <<"entrez une ip de debut au format a.b.c.d\n";
cin >> ip;
cout <<"cette ip est une chaine de caractères de longeur " ;
longueur = strlen (ip);//fonction permettant de retourner la longeur de la chaine de caractere!

cout << longueur<<endl;//ensuite on l'affiche!
cout <<"entrez une ip de fin au format a.b.c.d\n";
cin>>ipfin;

cout <<"cette ip est une chaine de caractères de longeur " ;
longueurfin = strlen (ipfin);//fonction permettant de retourner la longeur de la chaine de caractere!
cout << longueurfin<<endl;//ensuite on l'affiche!


for (n=0;n<longueur;n++)
{temp=ip[n];
cout<<"extraction caractere" <<n<<":"<<temp<<endl;
if (temp == (char)48)
{cout <<"le programme reconnait la valeur 0 dans temp\n";
switch (i)
{case 0:ip1=(ip1*10)+0;
break;
case 1:ip2=(ip2*10)+0;
break;
case 2:ip3=(ip3*10)+0;
break;
case 3:ip4=(ip4*10)+0;
break;
}
}
else if (temp == (char)49)
{cout <<"le programme reconait la valeur 1 dans temp \n";
switch (i)
{case 0:ip1=(ip1*10)+1;
break;
case 1:ip2=(ip2*10)+1;
break;
case 2:ip3=(ip3*10)+1;
break;
case 3:ip4=(ip4*10)+1;
break;
}
}
else if (temp == (char)50)
{cout <<"le programme reconait la valeur 2 dans temp \n";
switch (i)
{case 0:ip1=(ip1*10)+2;
break;
case 1:ip2=(ip2*10)+2;
break;
case 2:ip3=(ip3*10)+2;
break;
case 3:ip4=(ip4*10)+2;
break;
}
}
else if (temp == (char)51)
{cout <<"le programme reconait la valeur 3 dans temp \n";
switch (i)
{case 0:ip1=(ip1*10)+3;
break;
case 1:ip2=(ip2*10)+3;
break;
case 2:ip3=(ip3*10)+3;
break;
case 3:ip4=(ip4*10)+3;
break;
}
}
else if (temp == (char)52)
{cout <<"le programme reconait la valeur 4 dans temp \n";
switch (i)
{case 0:ip1=(ip1*10)+4;
break;
case 1:ip2=(ip2*10)+4;
break;
case 2:ip3=(ip3*10)+4;
break;
case 3:ip4=(ip4*10)+4;
break;
}
}
else if (temp == (char)53)
{cout <<"le programme reconait la valeur 5 dans temp \n";
switch (i)
{case 0:ip1=(ip1*10)+5;
break;
case 1:ip2=(ip2*10)+5;
break;
case 2:ip3=(ip3*10)+5;
break;
case 3:ip4=(ip4*10)+5;
break;
}
}
else if (temp == (char)54)
{cout <<"le programme reconait la valeur 6 dans temp \n";
switch (i)
{case 0:ip1=(ip1*10)+6;
break;
case 1:ip2=(ip2*10)+6;
break;
case 2:ip3=(ip3*10)+6;
break;
case 3:ip4=(ip4*10)+6;
break;
}
}
else if (temp == (char)55)
{cout <<"le programme reconait la valeur 7 dans temp \n";
switch (i)
{case 0:ip1=(ip1*10)+7;
break;
case 1:ip2=(ip2*10)+7;
break;
case 2:ip3=(ip3*10)+7;
break;
case 3:ip4=(ip4*10)+7;
break;
}
}
else if (temp == (char)56)
{cout <<"le programme reconait la valeur 8 dans temp \n";
switch (i)
{case 0:ip1=(ip1*10)+8;
break;
case 1:ip2=(ip2*10)+8;
break;
case 2:ip3=(ip3*10)+8;
break;
case 3:ip4=(ip4*10)+8;
break;
}
}
else if (temp == (char)57)
{cout <<"le programme reconait la valeur 9 dans temp \n";
switch (i)
{case 0:ip1=(ip1*10)+9;
break;
case 1:ip2=(ip2*10)+9;
break;
case 2:ip3=(ip3*10)+9;
break;
case 3:ip4=(ip4*10)+9;
break;
}
}
else if (temp == (char)46)
{cout <<"le programme reconait la valeur . dans temp \n";
i++;
}
else if (temp == (char)42)
cout <<"le programme reconait la valeur * dans temp \n";

//test des caracteres,est-ce que c un . ou n'importe quel chiffre?
//si oui on fait des operations avec


}

cout<<endl;

cout <<endl;



for (n1=0;n1<longueurfin;n1++)
{temp1=ipfin[n1];
cout<<"extraction caractere" <<n1<<":"<<temp1<<endl;
if (temp1 == (char)48)
{cout <<"le programme reconnait la valeur 0 dans temp\n";
switch (j)
{case 0:ip10=(ip10*10)+0;
break;
case 1:ip20=(ip20*10)+0;
break;
case 2:ip30=(ip30*10)+0;
break;
case 3:ip40=(ip40*10)+0;
break;
}
}
else if (temp1 == (char)49)
{cout <<"le programme reconait la valeur 1 dans temp \n";
switch (j)
{case 0:ip10=(ip10*10)+1;
break;
case 1:ip20=(ip20*10)+1;
break;
case 2:ip30=(ip30*10)+1;
break;
case 3:ip40=(ip40*10)+1;
break;
}
}
else if (temp1 == (char)50)
{cout <<"le programme reconait la valeur 2 dans temp \n";
switch (j)
{case 0:ip10=(ip10*10)+2;
break;
case 1:ip20=(ip20*10)+2;
break;
case 2:ip30=(ip30*10)+2;
break;
case 3:ip40=(ip40*10)+2;
break;
}
}
else if (temp1 == (char)51)
{cout <<"le programme reconait la valeur 3 dans temp \n";
switch (j)
{case 0:ip10=(ip10*10)+3;
break;
case 1:ip20=(ip20*10)+3;
break;
case 2:ip30=(ip30*10)+3;
break;
case 3:ip40=(ip40*10)+3;
break;
}
}
else if (temp1 == (char)52)
{cout <<"le programme reconait la valeur 4 dans temp \n";
switch (j)
{case 0:ip10=(ip10*10)+4;
break;
case 1:ip20=(ip20*10)+4;
break;
case 2:ip30=(ip30*10)+4;
break;
case 3:ip40=(ip40*10)+4;
break;
}
}
else if (temp1 == (char)53)
{cout <<"le programme reconait la valeur 5 dans temp \n";
switch (j)
{case 0:ip10=(ip10*10)+5;
break;
case 1:ip20=(ip20*10)+5;
break;
case 2:ip30=(ip30*10)+5;
break;
case 3:ip40=(ip40*10)+5;
break;
}
}
else if (temp1 == (char)54)
{cout <<"le programme reconait la valeur 6 dans temp \n";
switch (j)
{case 0:ip10=(ip10*10)+6;
break;
case 1:ip20=(ip20*10)+6;
break;
case 2:ip30=(ip30*10)+6;
break;
case 3:ip40=(ip40*10)+6;
break;
}
}
else if (temp1 == (char)55)
{cout <<"le programme reconait la valeur 7 dans temp \n";
switch (j)
{case 0:ip10=(ip10*10)+7;
break;
case 1:ip20=(ip20*10)+7;
break;
case 2:ip30=(ip30*10)+7;
break;
case 3:ip40=(ip40*10)+7;
break;
}
}
else if (temp1 == (char)56)
{cout <<"le programme reconait la valeur 8 dans temp \n";
switch (j)
{case 0:ip10=(ip10*10)+8;
break;
case 1:ip20=(ip20*10)+8;
break;
case 2:ip30=(ip30*10)+8;
break;
case 3:ip40=(ip40*10)+8;
break;
}
}
else if (temp1 == (char)57)
{cout <<"le programme reconait la valeur 9 dans temp \n";
switch (j)
{case 0:ip10=(ip10*10)+9;
break;
case 1:ip20=(ip20*10)+9;
break;
case 2:ip30=(ip30*10)+9;
break;
case 3:ip40=(ip40*10)+9;
break;
}
}
else if (temp1 == (char)46)
{cout <<"le programme reconait la valeur . dans temp \n";
j++;
}
else if (temp1 == (char)42)
cout <<"le programme reconait la valeur * dans temp \n";

//test des caracteres,est-ce que c un . ou n'importe quel chiffre?
//si oui on fait des operations avec


}




//ensuite on affiche les valeurs
cout <<"voici les 4 chiffres de l'ip de debut:\n"<<
ip1<<"\t"<<ip2<<"\t"<<ip3<<"\t"<<ip4<<"\n";


//ensuite on affiche les valeurs
cout <<"voici les 4 chiffres de l'ip de fin:\n";
cout <<ip10<<"\t"<<ip20<<"\t"<<ip30<<"\t"<<ip40<<"\n";

cout<<"traitement de la liste d'ip"<<endl;


do
{
ip4++;
if (ip3>254 && ip4>255)
{ip3=0;
ip2++;

}
if (ip2>255)
{
ip1++;
ip2=0;
}

if (ip4>255)
{

ip4=0;
++ip3;
if (ip3>255 && ip4>255)
{ip3=0;}
}

cout<<ip1<<"\t"<<ip2<<"\t"<<ip3<<"\t"<<ip4<<"\n";

}
while(ip4<ip40 || ip3<ip30 ||ip2<ip20||ip1<ip10);


cout<<"fin du progz ;)\n";


return 0;
}
mercredi 6 août 2003 à 20:04:44 | Re : tite aide svp!!

aardman

Membre Club
Salut,
Honnetement je pense que lister et manipuler des IP sous la forme de chaine de caractere du type xxx.xxx.xxx.xxx est une mauvaise idée.
Moi je convertirais plutot les IP en unsigned long, qui sont de loin bcp plus facile a manipuler.
Ton code tiendrait en 15 lignes comme ca je pense.
Si tu as besoin d'aide... :)



-------------------------------
Réponse au message :
-------------------------------

> salut tout le monde!
> j'aurais besoinde votre aide svp!
> je suis en train de développer un programme qui va lister toutes les ip contenues entre les ip de début et de fin(entrées par l'utilisateur)
> vous trouverez ci dessous le source du projet!
> merci d'avance pour votre aide!
>
> ps:le prog ne liste pas correctement les ip,notamment qd on passe de 0.0.255.255 à 0.1.0.0(bug car après 0.0.255.255,le prog passe directement à 0.1.1.0)
> encore une fois,merci d'avance pour votre aide!
>
>
>
>
> #include <iostream.h>
> #include <string.h>
> #include <stdio.h>
>
> int main()
> {
> char ip[16],temp,temp1,ipfin[16];
> int longueur,longueurfin,n,n1,ip1=0,ip2=0,ip3=0,ip4=0,i=0,j=0,ip10=0,ip20=0,ip30=0,ip40=0;
>
> cout <<"entrez une ip de debut au format a.b.c.d\n";
> cin >> ip;
> cout <<"cette ip est une chaine de caractères de longeur " ;
> longueur = strlen (ip);//fonction permettant de retourner la longeur de la chaine de caractere!
>
> cout << longueur<<endl;//ensuite on l'affiche!
> cout <<"entrez une ip de fin au format a.b.c.d\n";
> cin>>ipfin;
>
> cout <<"cette ip est une chaine de caractères de longeur " ;
> longueurfin = strlen (ipfin);//fonction permettant de retourner la longeur de la chaine de caractere!
> cout << longueurfin<<endl;//ensuite on l'affiche!
>
>
> for (n=0;n<longueur;n++)
> {temp=ip[n];
> cout<<"extraction caractere" <<n<<":"<<temp<<endl;
> if (temp == (char)48)
> {cout <<"le programme reconnait la valeur 0 dans temp\n";
> switch (i)
> {case 0:ip1=(ip1*10)+0;
> break;
> case 1:ip2=(ip2*10)+0;
> break;
> case 2:ip3=(ip3*10)+0;
> break;
> case 3:ip4=(ip4*10)+0;
> break;
> }
> }
> else if (temp == (char)49)
> {cout <<"le programme reconait la valeur 1 dans temp \n";
> switch (i)
> {case 0:ip1=(ip1*10)+1;
> break;
> case 1:ip2=(ip2*10)+1;
> break;
> case 2:ip3=(ip3*10)+1;
> break;
> case 3:ip4=(ip4*10)+1;
> break;
> }
> }
> else if (temp == (char)50)
> {cout <<"le programme reconait la valeur 2 dans temp \n";
> switch (i)
> {case 0:ip1=(ip1*10)+2;
> break;
> case 1:ip2=(ip2*10)+2;
> break;
> case 2:ip3=(ip3*10)+2;
> break;
> case 3:ip4=(ip4*10)+2;
> break;
> }
> }
> else if (temp == (char)51)
> {cout <<"le programme reconait la valeur 3 dans temp \n";
> switch (i)
> {case 0:ip1=(ip1*10)+3;
> break;
> case 1:ip2=(ip2*10)+3;
> break;
> case 2:ip3=(ip3*10)+3;
> break;
> case 3:ip4=(ip4*10)+3;
> break;
> }
> }
> else if (temp == (char)52)
> {cout <<"le programme reconait la valeur 4 dans temp \n";
> switch (i)
> {case 0:ip1=(ip1*10)+4;
> break;
> case 1:ip2=(ip2*10)+4;
> break;
> case 2:ip3=(ip3*10)+4;
> break;
> case 3:ip4=(ip4*10)+4;
> break;
> }
> }
> else if (temp == (char)53)
> {cout <<"le programme reconait la valeur 5 dans temp \n";
> switch (i)
> {case 0:ip1=(ip1*10)+5;
> break;
> case 1:ip2=(ip2*10)+5;
> break;
> case 2:ip3=(ip3*10)+5;
> break;
> case 3:ip4=(ip4*10)+5;
> break;
> }
> }
> else if (temp == (char)54)
> {cout <<"le programme reconait la valeur 6 dans temp \n";
> switch (i)
> {case 0:ip1=(ip1*10)+6;
> break;
> case 1:ip2=(ip2*10)+6;
> break;
> case 2:ip3=(ip3*10)+6;
> break;
> case 3:ip4=(ip4*10)+6;
> break;
> }
> }
> else if (temp == (char)55)
> {cout <<"le programme reconait la valeur 7 dans temp \n";
> switch (i)
> {case 0:ip1=(ip1*10)+7;
> break;
> case 1:ip2=(ip2*10)+7;
> break;
> case 2:ip3=(ip3*10)+7;
> break;
> case 3:ip4=(ip4*10)+7;
> break;
> }
> }
> else if (temp == (char)56)
> {cout <<"le programme reconait la valeur 8 dans temp \n";
> switch (i)
> {case 0:ip1=(ip1*10)+8;
> break;
> case 1:ip2=(ip2*10)+8;
> break;
> case 2:ip3=(ip3*10)+8;
> break;
> case 3:ip4=(ip4*10)+8;
> break;
> }
> }
> else if (temp == (char)57)
> {cout <<"le programme reconait la valeur 9 dans temp \n";
> switch (i)
> {case 0:ip1=(ip1*10)+9;
> break;
> case 1:ip2=(ip2*10)+9;
> break;
> case 2:ip3=(ip3*10)+9;
> break;
> case 3:ip4=(ip4*10)+9;
> break;
> }
> }
> else if (temp == (char)46)
> {cout <<"le programme reconait la valeur . dans temp \n";
> i++;
> }
> else if (temp == (char)42)
> cout <<"le programme reconait la valeur * dans temp \n";
>
> //test des caracteres,est-ce que c un . ou n'importe quel chiffre?
> //si oui on fait des operations avec
>
>
> }
>
> cout<<endl;
>
> cout <<endl;
>
>
>
> for (n1=0;n1<longueurfin;n1++)
> {temp1=ipfin[n1];
> cout<<"extraction caractere" <<n1<<":"<<temp1<<endl;
> if (temp1 == (char)48)
> {cout <<"le programme reconnait la valeur 0 dans temp\n";
> switch (j)
> {case 0:ip10=(ip10*10)+0;
> break;
> case 1:ip20=(ip20*10)+0;
> break;
> case 2:ip30=(ip30*10)+0;
> break;
> case 3:ip40=(ip40*10)+0;
> break;
> }
> }
> else if (temp1 == (char)49)
> {cout <<"le programme reconait la valeur 1 dans temp \n";
> switch (j)
> {case 0:ip10=(ip10*10)+1;
> break;
> case 1:ip20=(ip20*10)+1;
> break;
> case 2:ip30=(ip30*10)+1;
> break;
> case 3:ip40=(ip40*10)+1;
> break;
> }
> }
> else if (temp1 == (char)50)
> {cout <<"le programme reconait la valeur 2 dans temp \n";
> switch (j)
> {case 0:ip10=(ip10*10)+2;
> break;
> case 1:ip20=(ip20*10)+2;
> break;
> case 2:ip30=(ip30*10)+2;
> break;
> case 3:ip40=(ip40*10)+2;
> break;
> }
> }
> else if (temp1 == (char)51)
> {cout <<"le programme reconait la valeur 3 dans temp \n";
> switch (j)
> {case 0:ip10=(ip10*10)+3;
> break;
> case 1:ip20=(ip20*10)+3;
> break;
> case 2:ip30=(ip30*10)+3;
> break;
> case 3:ip40=(ip40*10)+3;
> break;
> }
> }
> else if (temp1 == (char)52)
> {cout <<"le programme reconait la valeur 4 dans temp \n";
> switch (j)
> {case 0:ip10=(ip10*10)+4;
> break;
> case 1:ip20=(ip20*10)+4;
> break;
> case 2:ip30=(ip30*10)+4;
> break;
> case 3:ip40=(ip40*10)+4;
> break;
> }
> }
> else if (temp1 == (char)53)
> {cout <<"le programme reconait la valeur 5 dans temp \n";
> switch (j)
> {case 0:ip10=(ip10*10)+5;
> break;
> case 1:ip20=(ip20*10)+5;
> break;
> case 2:ip30=(ip30*10)+5;
> break;
> case 3:ip40=(ip40*10)+5;
> break;
> }
> }
> else if (temp1 == (char)54)
> {cout <<"le programme reconait la valeur 6 dans temp \n";
> switch (j)
> {case 0:ip10=(ip10*10)+6;
> break;
> case 1:ip20=(ip20*10)+6;
> break;
> case 2:ip30=(ip30*10)+6;
> break;
> case 3:ip40=(ip40*10)+6;
> break;
> }
> }
> else if (temp1 == (char)55)
> {cout <<"le programme reconait la valeur 7 dans temp \n";
> switch (j)
> {case 0:ip10=(ip10*10)+7;
> break;
> case 1:ip20=(ip20*10)+7;
> break;
> case 2:ip30=(ip30*10)+7;
> break;
> case 3:ip40=(ip40*10)+7;
> break;
> }
> }
> else if (temp1 == (char)56)
> {cout <<"le programme reconait la valeur 8 dans temp \n";
> switch (j)
> {case 0:ip10=(ip10*10)+8;
> break;
> case 1:ip20=(ip20*10)+8;
> break;
> case 2:ip30=(ip30*10)+8;
> break;
> case 3:ip40=(ip40*10)+8;
> break;
> }
> }
> else if (temp1 == (char)57)
> {cout <<"le programme reconait la valeur 9 dans temp \n";
> switch (j)
> {case 0:ip10=(ip10*10)+9;
> break;
> case 1:ip20=(ip20*10)+9;
> break;
> case 2:ip30=(ip30*10)+9;
> break;
> case 3:ip40=(ip40*10)+9;
> break;
> }
> }
> else if (temp1 == (char)46)
> {cout <<"le programme reconait la valeur . dans temp \n";
> j++;
> }
> else if (temp1 == (char)42)
> cout <<"le programme reconait la valeur * dans temp \n";
>
> //test des caracteres,est-ce que c un . ou n'importe quel chiffre?
> //si oui on fait des operations avec
>
>
> }
>
>
>
>
> //ensuite on affiche les valeurs
> cout <<"voici les 4 chiffres de l'ip de debut:\n"<<
> ip1<<"\t"<<ip2<<"\t"<<ip3<<"\t"<<ip4<<"\n";
>
>
> //ensuite on affiche les valeurs
> cout <<"voici les 4 chiffres de l'ip de fin:\n";
> cout <<ip10<<"\t"<<ip20<<"\t"<<ip30<<"\t"<<ip40<<"\n";
>
> cout<<"traitement de la liste d'ip"<<endl;
>
>
> do
> {
> ip4++;
> if (ip3>254 && ip4>255)
> {ip3=0;
> ip2++;
>
> }
> if (ip2>255)
> {
> ip1++;
> ip2=0;
> }
>
> if (ip4>255)
> {
>
> ip4=0;
> ++ip3;
> if (ip3>255 && ip4>255)
> {ip3=0;}
> }
>
> cout<<ip1<<"\t"<<ip2<<"\t"<<ip3<<"\t"<<ip4<<"\n";
>
> }
> while(ip4<ip40 || ip3<ip30 ||ip2<ip20||ip1<ip10);
>
>
> cout<<"fin du progz ;)\n";
>
>
> return 0;
> }
>
mercredi 6 août 2003 à 20:17:22 | Re : tite aide svp!!

chris5874


salut!
merci de ta réponse ;)
j'aimerai bien savoir comment tu fais,
car il me semble qu'au max avec un unsigned long int,tu va jusqu'à 4 294 967 295!
je peux toujours me tromper,et si c le cas,j'admettrai mon erreur,seulement,je voudrais pouvoir manipuler l'ensemble des ip possibles,cad,de 0.0.0.0 à 255.255.255.255!
merci d'avance pour ta réponse!



-------------------------------
Réponse au message :
-------------------------------

> Salut,
> Honnetement je pense que lister et manipuler des IP sous la forme de chaine de caractere du type xxx.xxx.xxx.xxx est une mauvaise idée.
> Moi je convertirais plutot les IP en unsigned long, qui sont de loin bcp plus facile a manipuler.
> Ton code tiendrait en 15 lignes comme ca je pense.
> Si tu as besoin d'aide... :)
>
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > salut tout le monde!
> > j'aurais besoinde votre aide svp!
> > je suis en train de développer un programme qui va lister toutes les ip contenues entre les ip de début et de fin(entrées par l'utilisateur)
> > vous trouverez ci dessous le source du projet!
> > merci d'avance pour votre aide!
> >
> > ps:le prog ne liste pas correctement les ip,notamment qd on passe de 0.0.255.255 à 0.1.0.0(bug car après 0.0.255.255,le prog passe directement à 0.1.1.0)
> > encore une fois,merci d'avance pour votre aide!
> >
> >
> >
> >
> > #include <iostream.h>
> > #include <string.h>
> > #include <stdio.h>
> >
> > int main()
> > {
> > char ip[16],temp,temp1,ipfin[16];
> > int longueur,longueurfin,n,n1,ip1=0,ip2=0,ip3=0,ip4=0,i=0,j=0,ip10=0,ip20=0,ip30=0,ip40=0;
> >
> > cout <<"entrez une ip de debut au format a.b.c.d\n";
> > cin >> ip;
> > cout <<"cette ip est une chaine de caractères de longeur " ;
> > longueur = strlen (ip);//fonction permettant de retourner la longeur de la chaine de caractere!
> >
> > cout << longueur<<endl;//ensuite on l'affiche!
> > cout <<"entrez une ip de fin au format a.b.c.d\n";
> > cin>>ipfin;
> >
> > cout <<"cette ip est une chaine de caractères de longeur " ;
> > longueurfin = strlen (ipfin);//fonction permettant de retourner la longeur de la chaine de caractere!
> > cout << longueurfin<<endl;//ensuite on l'affiche!
> >
> >
> > for (n=0;n<longueur;n++)
> > {temp=ip[n];
> > cout<<"extraction caractere" <<n<<":"<<temp<<endl;
> > if (temp == (char)48)
> > {cout <<"le programme reconnait la valeur 0 dans temp\n";
> > switch (i)
> > {case 0:ip1=(ip1*10)+0;
> > break;
> > case 1:ip2=(ip2*10)+0;
> > break;
> > case 2:ip3=(ip3*10)+0;
> > break;
> > case 3:ip4=(ip4*10)+0;
> > break;
> > }
> > }
> > else if (temp == (char)49)
> > {cout <<"le programme reconait la valeur 1 dans temp \n";
> > switch (i)
> > {case 0:ip1=(ip1*10)+1;
> > break;
> > case 1:ip2=(ip2*10)+1;
> > break;
> > case 2:ip3=(ip3*10)+1;
> > break;
> > case 3:ip4=(ip4*10)+1;
> > break;
> > }
> > }
> > else if (temp == (char)50)
> > {cout <<"le programme reconait la valeur 2 dans temp \n";
> > switch (i)
> > {case 0:ip1=(ip1*10)+2;
> > break;
> > case 1:ip2=(ip2*10)+2;
> > break;
> > case 2:ip3=(ip3*10)+2;
> > break;
> > case 3:ip4=(ip4*10)+2;
> > break;
> > }
> > }
> > else if (temp == (char)51)
> > {cout <<"le programme reconait la valeur 3 dans temp \n";
> > switch (i)
> > {case 0:ip1=(ip1*10)+3;
> > break;
> > case 1:ip2=(ip2*10)+3;
> > break;
> > case 2:ip3=(ip3*10)+3;
> > break;
> > case 3:ip4=(ip4*10)+3;
> > break;
> > }
> > }
> > else if (temp == (char)52)
> > {cout <<"le programme reconait la valeur 4 dans temp \n";
> > switch (i)
> > {case 0:ip1=(ip1*10)+4;
> > break;
> > case 1:ip2=(ip2*10)+4;
> > break;
> > case 2:ip3=(ip3*10)+4;
> > break;
> > case 3:ip4=(ip4*10)+4;
> > break;
> > }
> > }
> > else if (temp == (char)53)
> > {cout <<"le programme reconait la valeur 5 dans temp \n";
> > switch (i)
> > {case 0:ip1=(ip1*10)+5;
> > break;
> > case 1:ip2=(ip2*10)+5;
> > break;
> > case 2:ip3=(ip3*10)+5;
> > break;
> > case 3:ip4=(ip4*10)+5;
> > break;
> > }
> > }
> > else if (temp == (char)54)
> > {cout <<"le programme reconait la valeur 6 dans temp \n";
> > switch (i)
> > {case 0:ip1=(ip1*10)+6;
> > break;
> > case 1:ip2=(ip2*10)+6;
> > break;
> > case 2:ip3=(ip3*10)+6;
> > break;
> > case 3:ip4=(ip4*10)+6;
> > break;
> > }
> > }
> > else if (temp == (char)55)
> > {cout <<"le programme reconait la valeur 7 dans temp \n";
> > switch (i)
> > {case 0:ip1=(ip1*10)+7;
> > break;
> > case 1:ip2=(ip2*10)+7;
> > break;
> > case 2:ip3=(ip3*10)+7;
> > break;
> > case 3:ip4=(ip4*10)+7;
> > break;
> > }
> > }
> > else if (temp == (char)56)
> > {cout <<"le programme reconait la valeur 8 dans temp \n";
> > switch (i)
> > {case 0:ip1=(ip1*10)+8;
> > break;
> > case 1:ip2=(ip2*10)+8;
> > break;
> > case 2:ip3=(ip3*10)+8;
> > break;
> > case 3:ip4=(ip4*10)+8;
> > break;
> > }
> > }
> > else if (temp == (char)57)
> > {cout <<"le programme reconait la valeur 9 dans temp \n";
> > switch (i)
> > {case 0:ip1=(ip1*10)+9;
> > break;
> > case 1:ip2=(ip2*10)+9;
> > break;
> > case 2:ip3=(ip3*10)+9;
> > break;
> > case 3:ip4=(ip4*10)+9;
> > break;
> > }
> > }
> > else if (temp == (char)46)
> > {cout <<"le programme reconait la valeur . dans temp \n";
> > i++;
> > }
> > else if (temp == (char)42)
> > cout <<"le programme reconait la valeur * dans temp \n";
> >
> > //test des caracteres,est-ce que c un . ou n'importe quel chiffre?
> > //si oui on fait des operations avec
> >
> >
> > }
> >
> > cout<<endl;
> >
> > cout <<endl;
> >
> >
> >
> > for (n1=0;n1<longueurfin;n1++)
> > {temp1=ipfin[n1];
> > cout<<"extraction caractere" <<n1<<":"<<temp1<<endl;
> > if (temp1 == (char)48)
> > {cout <<"le programme reconnait la valeur 0 dans temp\n";
> > switch (j)
> > {case 0:ip10=(ip10*10)+0;
> > break;
> > case 1:ip20=(ip20*10)+0;
> > break;
> > case 2:ip30=(ip30*10)+0;
> > break;
> > case 3:ip40=(ip40*10)+0;
> > break;
> > }
> > }
> > else if (temp1 == (char)49)
> > {cout <<"le programme reconait la valeur 1 dans temp \n";
> > switch (j)
> > {case 0:ip10=(ip10*10)+1;
> > break;
> > case 1:ip20=(ip20*10)+1;
> > break;
> > case 2:ip30=(ip30*10)+1;
> > break;
> > case 3:ip40=(ip40*10)+1;
> > break;
> > }
> > }
> > else if (temp1 == (char)50)
> > {cout <<"le programme reconait la valeur 2 dans temp \n";
> > switch (j)
> > {case 0:ip10=(ip10*10)+2;
> > break;
> > case 1:ip20=(ip20*10)+2;
> > break;
> > case 2:ip30=(ip30*10)+2;
> > break;
> > case 3:ip40=(ip40*10)+2;
> > break;
> > }
> > }
> > else if (temp1 == (char)51)
> > {cout <<"le programme reconait la valeur 3 dans temp \n";
> > switch (j)
> > {case 0:ip10=(ip10*10)+3;
> > break;
> > case 1:ip20=(ip20*10)+3;
> > break;
> > case 2:ip30=(ip30*10)+3;
> > break;
> > case 3:ip40=(ip40*10)+3;
> > break;
> > }
> > }
> > else if (temp1 == (char)52)
> > {cout <<"le programme reconait la valeur 4 dans temp \n";
> > switch (j)
> > {case 0:ip10=(ip10*10)+4;
> > break;
> > case 1:ip20=(ip20*10)+4;
> > break;
> > case 2:ip30=(ip30*10)+4;
> > break;
> > case 3:ip40=(ip40*10)+4;
> > break;
> > }
> > }
> > else if (temp1 == (char)53)
> > {cout <<"le programme reconait la valeur 5 dans temp \n";
> > switch (j)
> > {case 0:ip10=(ip10*10)+5;
> > break;
> > case 1:ip20=(ip20*10)+5;
> > break;
> > case 2:ip30=(ip30*10)+5;
> > break;
> > case 3:ip40=(ip40*10)+5;
> > break;
> > }
> > }
> > else if (temp1 == (char)54)
> > {cout <<"le programme reconait la valeur 6 dans temp \n";
> > switch (j)
> > {case 0:ip10=(ip10*10)+6;
> > break;
> > case 1:ip20=(ip20*10)+6;
> > break;
> > case 2:ip30=(ip30*10)+6;
> > break;
> > case 3:ip40=(ip40*10)+6;
> > break;
> > }
> > }
> > else if (temp1 == (char)55)
> > {cout <<"le programme reconait la valeur 7 dans temp \n";
> > switch (j)
> > {case 0:ip10=(ip10*10)+7;
> > break;
> > case 1:ip20=(ip20*10)+7;
> > break;
> > case 2:ip30=(ip30*10)+7;
> > break;
> > case 3:ip40=(ip40*10)+7;
> > break;
> > }
> > }
> > else if (temp1 == (char)56)
> > {cout <<"le programme reconait la valeur 8 dans temp \n";
> > switch (j)
> > {case 0:ip10=(ip10*10)+8;
> > break;
> > case 1:ip20=(ip20*10)+8;
> > break;
> > case 2:ip30=(ip30*10)+8;
> > break;
> > case 3:ip40=(ip40*10)+8;
> > break;
> > }
> > }
> > else if (temp1 == (char)57)
> > {cout <<"le programme reconait la valeur 9 dans temp \n";
> > switch (j)
> > {case 0:ip10=(ip10*10)+9;
> > break;
> > case 1:ip20=(ip20*10)+9;
> > break;
> > case 2:ip30=(ip30*10)+9;
> > break;
> > case 3:ip40=(ip40*10)+9;
> > break;
> > }
> > }
> > else if (temp1 == (char)46)
> > {cout <<"le programme reconait la valeur . dans temp \n";
> > j++;
> > }
> > else if (temp1 == (char)42)
> > cout <<"le programme reconait la valeur * dans temp \n";
> >
> > //test des caracteres,est-ce que c un . ou n'importe quel chiffre?
> > //si oui on fait des operations avec
> >
> >
> > }
> >
> >
> >
> >
> > //ensuite on affiche les valeurs
> > cout <<"voici les 4 chiffres de l'ip de debut:\n"<<
> > ip1<<"\t"<<ip2<<"\t"<<ip3<<"\t"<<ip4<<"\n";
> >
> >
> > //ensuite on affiche les valeurs
> > cout <<"voici les 4 chiffres de l'ip de fin:\n";
> > cout <<ip10<<"\t"<<ip20<<"\t"<<ip30<<"\t"<<ip40<<"\n";
> >
> > cout<<"traitement de la liste d'ip"<<endl;
> >
> >
> > do
> > {
> > ip4++;
> > if (ip3>254 && ip4>255)
> > {ip3=0;
> > ip2++;
> >
> > }
> > if (ip2>255)
> > {
> > ip1++;
> > ip2=0;
> > }
> >
> > if (ip4>255)
> > {
> >
> > ip4=0;
> > ++ip3;
> > if (ip3>255 && ip4>255)
> > {ip3=0;}
> > }
> >
> > cout<<ip1<<"\t"<<ip2<<"\t"<<ip3<<"\t"<<ip4<<"\n";
> >
> > }
> > while(ip4<ip40 || ip3<ip30 ||ip2<ip20||ip1<ip10);
> >
> >
> > cout<<"fin du progz ;)\n";
> >
> >
> > return 0;
> > }
> >
>
mercredi 6 août 2003 à 20:25:40 | Re : tite aide svp!!

aardman

Membre Club
Salut,
Un unsigned long est un entier non signé de 4 octet
Un octet non signé va de 0 jusqua 255
Donc tu met un numero dans chaque octet et toute ton ip est dans l'insigned long.

Pour ton prog, un exemple:
Si tu as une ip 80.80.80.80, tu la convertis en unsigned long A, et si tu fais A++, et que tu la reconvertis en format lisible, ben tu aura 80.80.80.81

Donc moi je convertirais l'adresse de depart et de fin en long, et ensuite une simple boucle pour afficher toutes les IP entre ces 2 ip de depart et de fin.



-------------------------------
Réponse au message :
-------------------------------

>
> salut!
> merci de ta réponse ;)
> j'aimerai bien savoir comment tu fais,
> car il me semble qu'au max avec un unsigned long int,tu va jusqu'à 4 294 967 295!
> je peux toujours me tromper,et si c le cas,j'admettrai mon erreur,seulement,je voudrais pouvoir manipuler l'ensemble des ip possibles,cad,de 0.0.0.0 à 255.255.255.255!
> merci d'avance pour ta réponse!
>
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Salut,
> > Honnetement je pense que lister et manipuler des IP sous la forme de chaine de caractere du type xxx.xxx.xxx.xxx est une mauvaise idée.
> > Moi je convertirais plutot les IP en unsigned long, qui sont de loin bcp plus facile a manipuler.
> > Ton code tiendrait en 15 lignes comme ca je pense.
> > Si tu as besoin d'aide... :)
> >
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > salut tout le monde!
> > > j'aurais besoinde votre aide svp!
> > > je suis en train de développer un programme qui va lister toutes les ip contenues entre les ip de début et de fin(entrées par l'utilisateur)
> > > vous trouverez ci dessous le source du projet!
> > > merci d'avance pour votre aide!
> > >
> > > ps:le prog ne liste pas correctement les ip,notamment qd on passe de 0.0.255.255 à 0.1.0.0(bug car après 0.0.255.255,le prog passe directement à 0.1.1.0)
> > > encore une fois,merci d'avance pour votre aide!
> > >
> > >
> > >
> > >
> > > #include <iostream.h>
> > > #include <string.h>
> > > #include <stdio.h>
> > >
> > > int main()
> > > {
> > > char ip[16],temp,temp1,ipfin[16];
> > > int longueur,longueurfin,n,n1,ip1=0,ip2=0,ip3=0,ip4=0,i=0,j=0,ip10=0,ip20=0,ip30=0,ip40=0;
> > >
> > > cout <<"entrez une ip de debut au format a.b.c.d\n";
> > > cin >> ip;
> > > cout <<"cette ip est une chaine de caractères de longeur " ;
> > > longueur = strlen (ip);//fonction permettant de retourner la longeur de la chaine de caractere!
> > >
> > > cout << longueur<<endl;//ensuite on l'affiche!
> > > cout <<"entrez une ip de fin au format a.b.c.d\n";
> > > cin>>ipfin;
> > >
> > > cout <<"cette ip est une chaine de caractères de longeur " ;
> > > longueurfin = strlen (ipfin);//fonction permettant de retourner la longeur de la chaine de caractere!
> > > cout << longueurfin<<endl;//ensuite on l'affiche!
> > >
> > >
> > > for (n=0;n<longueur;n++)
> > > {temp=ip[n];
> > > cout<<"extraction caractere" <<n<<":"<<temp<<endl;
> > > if (temp == (char)48)
> > > {cout <<"le programme reconnait la valeur 0 dans temp\n";
> > > switch (i)
> > > {case 0:ip1=(ip1*10)+0;
> > > break;
> > > case 1:ip2=(ip2*10)+0;
> > > break;
> > > case 2:ip3=(ip3*10)+0;
> > > break;
> > > case 3:ip4=(ip4*10)+0;
> > > break;
> > > }
> > > }
> > > else if (temp == (char)49)
> > > {cout <<"le programme reconait la valeur 1 dans temp \n";
> > > switch (i)
> > > {case 0:ip1=(ip1*10)+1;
> > > break;
> > > case 1:ip2=(ip2*10)+1;
> > > break;
> > > case 2:ip3=(ip3*10)+1;
> > > break;
> > > case 3:ip4=(ip4*10)+1;
> > > break;
> > > }
> > > }
> > > else if (temp == (char)50)
> > > {cout <<"le programme reconait la valeur 2 dans temp \n";
> > > switch (i)
> > > {case 0:ip1=(ip1*10)+2;
> > > break;
> > > case 1:ip2=(ip2*10)+2;
> > > break;
> > > case 2:ip3=(ip3*10)+2;
> > > break;
> > > case 3:ip4=(ip4*10)+2;
> > > break;
> > > }
> > > }
> > > else if (temp == (char)51)
> > > {cout <<"le programme reconait la valeur 3 dans temp \n";
> > > switch (i)
> > > {case 0:ip1=(ip1*10)+3;
> > > break;
> > > case 1:ip2=(ip2*10)+3;
> > > break;
> > > case 2:ip3=(ip3*10)+3;
> > > break;
> > > case 3:ip4=(ip4*10)+3;
> > > break;
> > > }
> > > }
> > > else if (temp == (char)52)
> > > {cout <<"le programme reconait la valeur 4 dans temp \n";
> > > switch (i)
> > > {case 0:ip1=(ip1*10)+4;
> > > break;
> > > case 1:ip2=(ip2*10)+4;
> > > break;
> > > case 2:ip3=(ip3*10)+4;
> > > break;
> > > case 3:ip4=(ip4*10)+4;
> > > break;
> > > }
> > > }
> > > else if (temp == (char)53)
> > > {cout <<"le programme reconait la valeur 5 dans temp \n";
> > > switch (i)
> > > {case 0:ip1=(ip1*10)+5;
> > > break;
> > > case 1:ip2=(ip2*10)+5;
> > > break;
> > > case 2:ip3=(ip3*10)+5;
> > > break;
> > > case 3:ip4=(ip4*10)+5;
> > > break;
> > > }
> > > }
> > > else if (temp == (char)54)
> > > {cout <<"le programme reconait la valeur 6 dans temp \n";
> > > switch (i)
> > > {case 0:ip1=(ip1*10)+6;
> > > break;
> > > case 1:ip2=(ip2*10)+6;
> > > break;
> > > case 2:ip3=(ip3*10)+6;
> > > break;
> > > case 3:ip4=(ip4*10)+6;
> > > break;
> > > }
> > > }
> > > else if (temp == (char)55)
> > > {cout <<"le programme reconait la valeur 7 dans temp \n";
> > > switch (i)
> > > {case 0:ip1=(ip1*10)+7;
> > > break;
> > > case 1:ip2=(ip2*10)+7;
> > > break;
> > > case 2:ip3=(ip3*10)+7;
> > > break;
> > > case 3:ip4=(ip4*10)+7;
> > > break;
> > > }
> > > }
> > > else if (temp == (char)56)
> > > {cout <<"le programme reconait la valeur 8 dans temp \n";
> > > switch (i)
> > > {case 0:ip1=(ip1*10)+8;
> > > break;
> > > case 1:ip2=(ip2*10)+8;
> > > break;
> > > case 2:ip3=(ip3*10)+8;
> > > break;
> > > case 3:ip4=(ip4*10)+8;
> > > break;
> > > }
> > > }
> > > else if (temp == (char)57)
> > > {cout <<"le programme reconait la valeur 9 dans temp \n";
> > > switch (i)
> > > {case 0:ip1=(ip1*10)+9;
> > > break;
> > > case 1:ip2=(ip2*10)+9;
> > > break;
> > > case 2:ip3=(ip3*10)+9;
> > > break;
> > > case 3:ip4=(ip4*10)+9;
> > > break;
> > > }
> > > }
> > > else if (temp == (char)46)
> > > {cout <<"le programme reconait la valeur . dans temp \n";
> > > i++;
> > > }
> > > else if (temp == (char)42)
> > > cout <<"le programme reconait la valeur * dans temp \n";
> > >
> > > //test des caracteres,est-ce que c un . ou n'importe quel chiffre?
> > > //si oui on fait des operations avec
> > >
> > >
> > > }
> > >
> > > cout<<endl;
> > >
> > > cout <<endl;
> > >
> > >
> > >
> > > for (n1=0;n1<longueurfin;n1++)
> > > {temp1=ipfin[n1];
> > > cout<<"extraction caractere" <<n1<<":"<<temp1<<endl;
> > > if (temp1 == (char)48)
> > > {cout <<"le programme reconnait la valeur 0 dans temp\n";
> > > switch (j)
> > > {case 0:ip10=(ip10*10)+0;
> > > break;
> > > case 1:ip20=(ip20*10)+0;
> > > break;
> > > case 2:ip30=(ip30*10)+0;
> > > break;
> > > case 3:ip40=(ip40*10)+0;
> > > break;
> > > }
> > > }
> > > else if (temp1 == (char)49)
> > > {cout <<"le programme reconait la valeur 1 dans temp \n";
> > > switch (j)
> > > {case 0:ip10=(ip10*10)+1;
> > > break;
> > > case 1:ip20=(ip20*10)+1;
> > > break;
> > > case 2:ip30=(ip30*10)+1;
> > > break;
> > > case 3:ip40=(ip40*10)+1;
> > > break;
> > > }
> > > }
> > > else if (temp1 == (char)50)
> > > {cout <<"le programme reconait la valeur 2 dans temp \n";
> > > switch (j)
> > > {case 0:ip10=(ip10*10)+2;
> > > break;
> > > case 1:ip20=(ip20*10)+2;
> > > break;
> > > case 2:ip30=(ip30*10)+2;
> > > break;
> > > case 3:ip40=(ip40*10)+2;
> > > break;
> > > }
> > > }
> > > else if (temp1 == (char)51)
> > > {cout <<"le programme reconait la valeur 3 dans temp \n";
> > > switch (j)
> > > {case 0:ip10=(ip10*10)+3;
> > > break;
> > > case 1:ip20=(ip20*10)+3;
> > > break;
> > > case 2:ip30=(ip30*10)+3;
> > > break;
> > > case 3:ip40=(ip40*10)+3;
> > > break;
> > > }
> > > }
> > > else if (temp1 == (char)52)
> > > {cout <<"le programme reconait la valeur 4 dans temp \n";
> > > switch (j)
> > > {case 0:ip10=(ip10*10)+4;
> > > break;
> > > case 1:ip20=(ip20*10)+4;
> > > break;
> > > case 2:ip30=(ip30*10)+4;
> > > break;
> > > case 3:ip40=(ip40*10)+4;
> > > break;
> > > }
> > > }
> > > else if (temp1 == (char)53)
> > > {cout <<"le programme reconait la valeur 5 dans temp \n";
> > > switch (j)
> > > {case 0:ip10=(ip10*10)+5;
> > > break;
> > > case 1:ip20=(ip20*10)+5;
> > > break;
> > > case 2:ip30=(ip30*10)+5;
> > > break;
> > > case 3:ip40=(ip40*10)+5;
> > > break;
> > > }
> > > }
> > > else if (temp1 == (char)54)
> > > {cout <<"le programme reconait la valeur 6 dans temp \n";
> > > switch (j)
> > > {case 0:ip10=(ip10*10)+6;
> > > break;
> > > case 1:ip20=(ip20*10)+6;
> > > break;
> > > case 2:ip30=(ip30*10)+6;
> > > break;
> > > case 3:ip40=(ip40*10)+6;
> > > break;
> > > }
> > > }
> > > else if (temp1 == (char)55)
> > > {cout <<"le programme reconait la valeur 7 dans temp \n";
> > > switch (j)
> > > {case 0:ip10=(ip10*10)+7;
> > > break;
> > > case 1:ip20=(ip20*10)+7;
> > > break;
> > > case 2:ip30=(ip30*10)+7;
> > > break;
> > > case 3:ip40=(ip40*10)+7;
> > > break;
> > > }
> > > }
> > > else if (temp1 == (char)56)
> > > {cout <<"le programme reconait la valeur 8 dans temp \n";
> > > switch (j)
> > > {case 0:ip10=(ip10*10)+8;
> > > break;
> > > case 1:ip20=(ip20*10)+8;
> > > break;
> > > case 2:ip30=(ip30*10)+8;
> > > break;
> > > case 3:ip40=(ip40*10)+8;
> > > break;
> > > }
> > > }
> > > else if (temp1 == (char)57)
> > > {cout <<"le programme reconait la valeur 9 dans temp \n";
> > > switch (j)
> > > {case 0:ip10=(ip10*10)+9;
> > > break;
> > > case 1:ip20=(ip20*10)+9;
> > > break;
> > > case 2:ip30=(ip30*10)+9;
> > > break;
> > > case 3:ip40=(ip40*10)+9;
> > > break;
> > > }
> > > }
> > > else if (temp1 == (char)46)
> > > {cout <<"le programme reconait la valeur . dans temp \n";
> > > j++;
> > > }
> > > else if (temp1 == (char)42)
> > > cout <<"le programme reconait la valeur * dans temp \n";
> > >
> > > //test des caracteres,est-ce que c un . ou n'importe quel chiffre?
> > > //si oui on fait des operations avec
> > >
> > >
> > > }
> > >
> > >
> > >
> > >
> > > //ensuite on affiche les valeurs
> > > cout <<"voici les 4 chiffres de l'ip de debut:\n"<<
> > > ip1<<"\t"<<ip2<<"\t"<<ip3<<"\t"<<ip4<<"\n";
> > >
> > >
> > > //ensuite on affiche les valeurs
> > > cout <<"voici les 4 chiffres de l'ip de fin:\n";
> > > cout <<ip10<<"\t"<<ip20<<"\t"<<ip30<<"\t"<<ip40<<"\n";
> > >
> > > cout<<"traitement de la liste d'ip"<<endl;
> > >
> > >
> > > do
> > > {
> > > ip4++;
> > > if (ip3>254 && ip4>255)
> > > {ip3=0;
> > > ip2++;
> > >
> > > }
> > > if (ip2>255)
> > > {
> > > ip1++;
> > > ip2=0;
> > > }
> > >
> > > if (ip4>255)
> > > {
> > >
> > > ip4=0;
> > > ++ip3;
> > > if (ip3>255 && ip4>255)
> > > {ip3=0;}
> > > }
> > >
> > > cout<<ip1<<"\t"<<ip2<<"\t"<<ip3<<"\t"<<ip4<<"\n";
> > >
> > > }
> > > while(ip4<ip40 || ip3<ip30 ||ip2<ip20||ip1<ip10);
> > >
> > >
> > > cout<<"fin du progz ;)\n";
> > >
> > >
> > > return 0;
> > > }
> > >
> >
>
mercredi 6 août 2003 à 20:34:43 | Re : tite aide svp!!

chris5874

salut!
je vois environ ce que tu veux dire,seulement je suis un peut sceptique sur la méthode!
je comprends le coup des 4 octets,par contre,faire tenir toute l'ip dans le unsigned long,je vois encore mal,dsl
au fait,dsl aussi pour mon erreur d'avant!
penses-tu que je pourrais reexploiter ce script,et arriver à mettre l'ip sous la forme unsigned long?ou comment penses-tu que je devrais faire pour y arriver(dsl je suis newbies!)?
encore une fois,merci pour tes réponses ,c sympa de ta part de m'aider à progresser ;)




-------------------------------
Réponse au message :
-------------------------------

> Salut,
> Un unsigned long est un entier non signé de 4 octet
> Un octet non signé va de 0 jusqua 255
> Donc tu met un numero dans chaque octet et toute ton ip est dans l'insigned long.
>
> Pour ton prog, un exemple:
> Si tu as une ip 80.80.80.80, tu la convertis en unsigned long A, et si tu fais A++, et que tu la reconvertis en format lisible, ben tu aura 80.80.80.81
>
> Donc moi je convertirais l'adresse de depart et de fin en long, et ensuite une simple boucle pour afficher toutes les IP entre ces 2 ip de depart et de fin.
>
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> >
> > salut!
> > merci de ta réponse ;)
> > j'aimerai bien savoir comment tu fais,
> > car il me semble qu'au max avec un unsigned long int,tu va jusqu'à 4 294 967 295!
> > je peux toujours me tromper,et si c le cas,j'admettrai mon erreur,seulement,je voudrais pouvoir manipuler l'ensemble des ip possibles,cad,de 0.0.0.0 à 255.255.255.255!
> > merci d'avance pour ta réponse!
> >
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > Salut,
> > > Honnetement je pense que lister et manipuler des IP sous la forme de chaine de caractere du type xxx.xxx.xxx.xxx est une mauvaise idée.
> > > Moi je convertirais plutot les IP en unsigned long, qui sont de loin bcp plus facile a manipuler.
> > > Ton code tiendrait en 15 lignes comme ca je pense.
> > > Si tu as besoin d'aide... :)
> > >
> > >
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > salut tout le monde!
> > > > j'aurais besoinde votre aide svp!
> > > > je suis en train de développer un programme qui va lister toutes les ip contenues entre les ip de début et de fin(entrées par l'utilisateur)
> > > > vous trouverez ci dessous le source du projet!
> > > > merci d'avance pour votre aide!
> > > >
> > > > ps:le prog ne liste pas correctement les ip,notamment qd on passe de 0.0.255.255 à 0.1.0.0(bug car après 0.0.255.255,le prog passe directement à 0.1.1.0)
> > > > encore une fois,merci d'avance pour votre aide!
> > > >
> > > >
> > > >
> > > >
> > > > #include <iostream.h>
> > > > #include <string.h>
> > > > #include <stdio.h>
> > > >
> > > > int main()
> > > > {
> > > > char ip[16],temp,temp1,ipfin[16];
> > > > int longueur,longueurfin,n,n1,ip1=0,ip2=0,ip3=0,ip4=0,i=0,j=0,ip10=0,ip20=0,ip30=0,ip40=0;
> > > >
> > > > cout <<"entrez une ip de debut au format a.b.c.d\n";
> > > > cin >> ip;
> > > > cout <<"cette ip est une chaine de caractères de longeur " ;
> > > > longueur = strlen (ip);//fonction permettant de retourner la longeur de la chaine de caractere!
> > > >
> > > > cout << longueur<<endl;//ensuite on l'affiche!
> > > > cout <<"entrez une ip de fin au format a.b.c.d\n";
> > > > cin>>ipfin;
> > > >
> > > > cout <<"cette ip est une chaine de caractères de longeur " ;
> > > > longueurfin = strlen (ipfin);//fonction permettant de retourner la longeur de la chaine de caractere!
> > > > cout << longueurfin<<endl;//ensuite on l'affiche!
> > > >
> > > >
> > > > for (n=0;n<longueur;n++)
> > > > {temp=ip[n];
> > > > cout<<"extraction caractere" <<n<<":"<<temp<<endl;
> > > > if (temp == (char)48)
> > > > {cout <<"le programme reconnait la valeur 0 dans temp\n";
> > > > switch (i)
> > > > {case 0:ip1=(ip1*10)+0;
> > > > break;
> > > > case 1:ip2=(ip2*10)+0;
> > > > break;
> > > > case 2:ip3=(ip3*10)+0;
> > > > break;
> > > > case 3:ip4=(ip4*10)+0;
> > > > break;
> > > > }
> > > > }
> > > > else if (temp == (char)49)
> > > > {cout <<"le programme reconait la valeur 1 dans temp \n";
> > > > switch (i)
> > > > {case 0:ip1=(ip1*10)+1;
> > > > break;
> > > > case 1:ip2=(ip2*10)+1;
> > > > break;
> > > > case 2:ip3=(ip3*10)+1;
> > > > break;
> > > > case 3:ip4=(ip4*10)+1;
> > > > break;
> > > > }
> > > > }
> > > > else if (temp == (char)50)
> > > > {cout <<"le programme reconait la valeur 2 dans temp \n";
> > > > switch (i)
> > > > {case 0:ip1=(ip1*10)+2;
> > > > break;
> > > > case 1:ip2=(ip2*10)+2;
> > > > break;
> > > > case 2:ip3=(ip3*10)+2;
> > > > break;
> > > > case 3:ip4=(ip4*10)+2;
> > > > break;
> > > > }
> > > > }
> > > > else if (temp == (char)51)
> > > > {cout <<"le programme reconait la valeur 3 dans temp \n";
> > > > switch (i)
> > > > {case 0:ip1=(ip1*10)+3;
> > > > break;
> > > > case 1:ip2=(ip2*10)+3;
> > > > break;
> > > > case 2:ip3=(ip3*10)+3;
> > > > break;
> > > > case 3:ip4=(ip4*10)+3;
> > > > break;
> > > > }
> > > > }
> > > > else if (temp == (char)52)
> > > > {cout <<"le programme reconait la valeur 4 dans temp \n";
> > > > switch (i)
> > > > {case 0:ip1=(ip1*10)+4;
> > > > break;
> > > > case 1:ip2=(ip2*10)+4;
> > > > break;
> > > > case 2:ip3=(ip3*10)+4;
> > > > break;
> > > > case 3:ip4=(ip4*10)+4;
> > > > break;
> > > > }
> > > > }
> > > > else if (temp == (char)53)
> > > > {cout <<"le programme reconait la valeur 5 dans temp \n";
> > > > switch (i)
> > > > {case 0:ip1=(ip1*10)+5;
> > > > break;
> > > > case 1:ip2=(ip2*10)+5;
> > > > break;
> > > > case 2:ip3=(ip3*10)+5;
> > > > break;
> > > > case 3:ip4=(ip4*10)+5;
> > > > break;
> > > > }
> > > > }
> > > > else if (temp == (char)54)
> > > > {cout <<"le programme reconait la valeur 6 dans temp \n";
> > > > switch (i)
> > > > {case 0:ip1=(ip1*10)+6;
> > > > break;
> > > > case 1:ip2=(ip2*10)+6;
> > > > break;
> > > > case 2:ip3=(ip3*10)+6;
> > > > break;
> > > > case 3:ip4=(ip4*10)+6;
> > > > break;
> > > > }
> > > > }
> > > > else if (temp == (char)55)
> > > > {cout <<"le programme reconait la valeur 7 dans temp \n";
> > > > switch (i)
> > > > {case 0:ip1=(ip1*10)+7;
> > > > break;
> > > > case 1:ip2=(ip2*10)+7;
> > > > break;
> > > > case 2:ip3=(ip3*10)+7;
> > > > break;
> > > > case 3:ip4=(ip4*10)+7;
> > > > break;
> > > > }
> > > > }
> > > > else if (temp == (char)56)
> > > > {cout <<"le programme reconait la valeur 8 dans temp \n";
> > > > switch (i)
> > > > {case 0:ip1=(ip1*10)+8;
> > > > break;
> > > > case 1:ip2=(ip2*10)+8;
> > > > break;
> > > > case 2:ip3=(ip3*10)+8;
> > > > break;
> > > > case 3:ip4=(ip4*10)+8;
> > > > break;
> > > > }
> > > > }
> > > > else if (temp == (char)57)
> > > > {cout <<"le programme reconait la valeur 9 dans temp \n";
> > > > switch (i)
> > > > {case 0:ip1=(ip1*10)+9;
> > > > break;
> > > > case 1:ip2=(ip2*10)+9;
> > > > break;
> > > > case 2:ip3=(ip3*10)+9;
> > > > break;
> > > > case 3:ip4=(ip4*10)+9;
> > > > break;
> > > > }
> > > > }
> > > > else if (temp == (char)46)
> > > > {cout <<"le programme reconait la valeur . dans temp \n";
> > > > i++;
> > > > }
> > > > else if (temp == (char)42)
> > > > cout <<"le programme reconait la valeur * dans temp \n";
> > > >
> > > > //test des caracteres,est-ce que c un . ou n'importe quel chiffre?
> > > > //si oui on fait des operations avec
> > > >
> > > >
> > > > }
> > > >
> > > > cout<<endl;
> > > >
> > > > cout <<endl;
> > > >
> > > >
> > > >
> > > > for (n1=0;n1<longueurfin;n1++)
> > > > {temp1=ipfin[n1];
> > > > cout<<"extraction caractere" <<n1<<":"<<temp1<<endl;
> > > > if (temp1 == (char)48)
> > > > {cout <<"le programme reconnait la valeur 0 dans temp\n";
> > > > switch (j)
> > > > {case 0:ip10=(ip10*10)+0;
> > > > break;
> > > > case 1:ip20=(ip20*10)+0;
> > > > break;
> > > > case 2:ip30=(ip30*10)+0;
> > > > break;
> > > > case 3:ip40=(ip40*10)+0;
> > > > break;
> > > > }
> > > > }
> > > > else if (temp1 == (char)49)
> > > > {cout <<"le programme reconait la valeur 1 dans temp \n";
> > > > switch (j)
> > > > {case 0:ip10=(ip10*10)+1;
> > > > break;
> > > > case 1:ip20=(ip20*10)+1;
> > > > break;
> > > > case 2:ip30=(ip30*10)+1;
> > > > break;
> > > > case 3:ip40=(ip40*10)+1;
> > > > break;
> > > > }
> > > > }
> > > > else if (temp1 == (char)50)
> > > > {cout <<"le programme reconait la valeur 2 dans temp \n";
> > > > switch (j)
> > > > {case 0:ip10=(ip10*10)+2;
> > > > break;
> > > > case 1:ip20=(ip20*10)+2;
> > > > break;
> > > > case 2:ip30=(ip30*10)+2;
> > > > break;
> > > > case 3:ip40=(ip40*10)+2;
> > > > break;
> > > > }
> > > > }
> > > > else if (temp1 == (char)51)
> > > > {cout <<"le programme reconait la valeur 3 dans temp \n";
> > > > switch (j)
> > > > {case 0:ip10=(ip10*10)+3;
> > > > break;
> > > > case 1:ip20=(ip20*10)+3;
> > > > break;
> > > > case 2:ip30=(ip30*10)+3;
> > > > break;
> > > > case 3:ip40=(ip40*10)+3;
> > > > break;
> > > > }
> > > > }
> > > > else if (temp1 == (char)52)
> > > > {cout <<"le programme reconait la valeur 4 dans temp \n";
> > > > switch (j)
> > > > {case 0:ip10=(ip10*10)+4;
> > > > break;
> > > > case 1:ip20=(ip20*10)+4;
> > > > break;
> > > > case 2:ip30=(ip30*10)+4;
> > > > break;
> > > > case 3:ip40=(ip40*10)+4;
> > > > break;
> > > > }
> > > > }
> > > > else if (temp1 == (char)53)
> > > > {cout <<"le programme reconait la valeur 5 dans temp \n";
> > > > switch (j)
> > > > {case 0:ip10=(ip10*10)+5;
> > > > break;
> > > > case 1:ip20=(ip20*10)+5;
> > > > break;
> > > > case 2:ip30=(ip30*10)+5;
> > > > break;
> > > > case 3:ip40=(ip40*10)+5;
> > > > break;
> > > > }
> > > > }
> > > > else if (temp1 == (char)54)
> > > > {cout <<"le programme reconait la valeur 6 dans temp \n";
> > > > switch (j)
> > > > {case 0:ip10=(ip10*10)+6;
> > > > break;
> > > > case 1:ip20=(ip20*10)+6;
> > > > break;
> > > > case 2:ip30=(ip30*10)+6;
> > > > break;
> > > > case 3:ip40=(ip40*10)+6;
> > > > break;
> > > > }
> > > > }
> > > > else if (temp1 == (char)55)
> > > > {cout <<"le programme reconait la valeur 7 dans temp \n";
> > > > switch (j)
> > > > {case 0:ip10=(ip10*10)+7;
> > > > break;
> > > > case 1:ip20=(ip20*10)+7;
> > > > break;
> > > > case 2:ip30=(ip30*10)+7;
> > > > break;
> > > > case 3:ip40=(ip40*10)+7;
> > > > break;
> > > > }
> > > > }
> > > > else if (temp1 == (char)56)
> > > > {cout <<"le programme reconait la valeur 8 dans temp \n";
> > > > switch (j)
> > > > {case 0:ip10=(ip10*10)+8;
> > > > break;
> > > > case 1:ip20=(ip20*10)+8;
> > > > break;
> > > > case 2:ip30=(ip30*10)+8;
> > > > break;
> > > > case 3:ip40=(ip40*10)+8;
> > > > break;
> > > > }
> > > > }
> > > > else if (temp1 == (char)57)
> > > > {cout <<"le programme reconait la valeur 9 dans temp \n";
> > > > switch (j)
> > > > {case 0:ip10=(ip10*10)+9;
> > > > break;
> > > > case 1:ip20=(ip20*10)+9;
> > > > break;
> > > > case 2:ip30=(ip30*10)+9;
> > > > break;
> > > > case 3:ip40=(ip40*10)+9;
> > > > break;
> > > > }
> > > > }
> > > > else if (temp1 == (char)46)
> > > > {cout <<"le programme reconait la valeur . dans temp \n";
> > > > j++;
> > > > }
> > > > else if (temp1 == (char)42)
> > > > cout <<"le programme reconait la valeur * dans temp \n";
> > > >
> > > > //test des caracteres,est-ce que c un . ou n'importe quel chiffre?
> > > > //si oui on fait des operations avec
> > > >
> > > >
> > > > }
> > > >
> > > >
> > > >
> > > >
> > > > //ensuite on affiche les valeurs
> > > > cout <<"voici les 4 chiffres de l'ip de debut:\n"<<
> > > > ip1<<"\t"<<ip2<<"\t"<<ip3<<"\t"<<ip4<<"\n";
> > > >
> > > >
> > > > //ensuite on affiche les valeurs
> > > > cout <<"voici les 4 chiffres de l'ip de fin:\n";
> > > > cout <<ip10<<"\t"<<ip20<<"\t"<<ip30<<"\t"<<ip40<<"\n";
> > > >
> > > > cout<<"traitement de la liste d'ip"<<endl;
> > > >
> > > >
> > > > do
> > > > {
> > > > ip4++;
> > > > if (ip3>254 && ip4>255)
> > > > {ip3=0;
> > > > ip2++;
> > > >
> > > > }
> > > > if (ip2>255)
> > > > {
> > > > ip1++;
> > > > ip2=0;
> > > > }
> > > >
> > > > if (ip4>255)
> > > > {
> > > >
> > > > ip4=0;
> > > > ++ip3;
> > > > if (ip3>255 && ip4>255)
> > > > {ip3=0;}
> > > > }
> > > >
> > > > cout<<ip1<<"\t"<<ip2<<"\t"<<ip3<<"\t"<<ip4<<"\n";
> > > >
> > > > }
> > > > while(ip4<ip40 || ip3<ip30 ||ip2<ip20||ip1<ip10);
> > > >
> > > >
> > > > cout<<"fin du progz ;)\n";
> > > >
> > > >
> > > > return 0;
> > > > }
> > > >
> > >
> >
>
mercredi 6 août 2003 à 20:46:22 | Re : tite aide svp!!

aardman

Membre Club
Salut,
Un unsigned long dispose de 4 fois une plage de valeur de 0 a 255. Je comprend pas pourquoi tu est septique.


-------------------------------
Réponse au message :
-------------------------------

> salut!
> je vois environ ce que tu veux dire,seulement je suis un peut sceptique sur la méthode!
> je comprends le coup des 4 octets,par contre,faire tenir toute l'ip dans le unsigned long,je vois encore mal,dsl
> au fait,dsl aussi pour mon erreur d'avant!
> penses-tu que je pourrais reexploiter ce script,et arriver à mettre l'ip sous la forme unsigned long?ou comment penses-tu que je devrais faire pour y arriver(dsl je suis newbies!)?
> encore une fois,merci pour tes réponses ,c sympa de ta part de m'aider à progresser ;)
>
>
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Salut,
> > Un unsigned long est un entier non signé de 4 octet
> > Un octet non signé va de 0 jusqua 255
> > Donc tu met un numero dans chaque octet et toute ton ip est dans l'insigned long.
> >
> > Pour ton prog, un exemple:
> > Si tu as une ip 80.80.80.80, tu la convertis en unsigned long A, et si tu fais A++, et que tu la reconvertis en format lisible, ben tu aura 80.80.80.81
> >
> > Donc moi je convertirais l'adresse de depart et de fin en long, et ensuite une simple boucle pour afficher toutes les IP entre ces 2 ip de depart et de fin.
> >
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > >
> > > salut!
> > > merci de ta réponse ;)
> > > j'aimerai bien savoir comment tu fais,
> > > car il me semble qu'au max avec un unsigned long int,tu va jusqu'à 4 294 967 295!
> > > je peux toujours me tromper,et si c le cas,j'admettrai mon erreur,seulement,je voudrais pouvoir manipuler l'ensemble des ip possibles,cad,de 0.0.0.0 à 255.255.255.255!
> > > merci d'avance pour ta réponse!
> > >
> > >
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > Salut,
> > > > Honnetement je pense que lister et manipuler des IP sous la forme de chaine de caractere du type xxx.xxx.xxx.xxx est une mauvaise idée.
> > > > Moi je convertirais plutot les IP en unsigned long, qui sont de loin bcp plus facile a manipuler.
> > > > Ton code tiendrait en 15 lignes comme ca je pense.
> > > > Si tu as besoin d'aide... :)
> > > >
> > > >
> > > >
> > > > -------------------------------
> > > > Réponse au message :
> > > > -------------------------------
> > > >
> > > > > salut tout le monde!
> > > > > j'aurais besoinde votre aide svp!
> > > > > je suis en train de développer un programme qui va lister toutes les ip contenues entre les ip de début et de fin(entrées par l'utilisateur)
> > > > > vous trouverez ci dessous le source du projet!
> > > > > merci d'avance pour votre aide!
> > > > >
> > > > > ps:le prog ne liste pas correctement les ip,notamment qd on passe de 0.0.255.255 à 0.1.0.0(bug car après 0.0.255.255,le prog passe directement à 0.1.1.0)
> > > > > encore une fois,merci d'avance pour votre aide!
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > #include <iostream.h>
> > > > > #include <string.h>
> > > > > #include <stdio.h>
> > > > >
> > > > > int main()
> > > > > {
> > > > > char ip[16],temp,temp1,ipfin[16];
> > > > > int longueur,longueurfin,n,n1,ip1=0,ip2=0,ip3=0,ip4=0,i=0,j=0,ip10=0,ip20=0,ip30=0,ip40=0;
> > > > >
> > > > > cout <<"entrez une ip de debut au format a.b.c.d\n";
> > > > > cin >> ip;
> > > > > cout <<"cette ip est une chaine de caractères de longeur " ;
> > > > > longueur = strlen (ip);//fonction permettant de retourner la longeur de la chaine de caractere!
> > > > >
> > > > > cout << longueur<<endl;//ensuite on l'affiche!
> > > > > cout <<"entrez une ip de fin au format a.b.c.d\n";
> > > > > cin>>ipfin;
> > > > >
> > > > > cout <<"cette ip est une chaine de caractères de longeur " ;
> > > > > longueurfin = strlen (ipfin);//fonction permettant de retourner la longeur de la chaine de caractere!
> > > > > cout << longueurfin<<endl;//ensuite on l'affiche!
> > > > >
> > > > >
> > > > > for (n=0;n<longueur;n++)
> > > > > {temp=ip[n];
> > > > > cout<<"extraction caractere" <<n<<":"<<temp<<endl;
> > > > > if (temp == (char)48)
> > > > > {cout <<"le programme reconnait la valeur 0 dans temp\n";
> > > > > switch (i)
> > > > > {case 0:ip1=(ip1*10)+0;
> > > > > break;
> > > > > case 1:ip2=(ip2*10)+0;
> > > > > break;
> > > > > case 2:ip3=(ip3*10)+0;
> > > > > break;
> > > > > case 3:ip4=(ip4*10)+0;
> > > > > break;
> > > > > }
> > > > > }
> > > > > else if (temp == (char)49)
> > > > > {cout <<"le programme reconait la valeur 1 dans temp \n";
> > > > > switch (i)
> > > > > {case 0:ip1=(ip1*10)+1;
> > > > > break;
> > > > > case 1:ip2=(ip2*10)+1;
> > > > > break;
> > > > > case 2:ip3=(ip3*10)+1;
> > > > > break;
> > > > > case 3:ip4=(ip4*10)+1;
> > > > > break;
> > > > > }
> > > > > }
> > > > > else if (temp == (char)50)
> > > > > {cout <<"le programme reconait la valeur 2 dans temp \n";
> > > > > switch (i)
> > > > > {case 0:ip1=(ip1*10)+2;
> > > > > break;
> > > > > case 1:ip2=(ip2*10)+2;
> > > > > break;
> > > > > case 2:ip3=(ip3*10)+2;
> > > > > break;
> > > > > case 3:ip4=(ip4*10)+2;
> > > > > break;
> > > > > }
> > > > > }
> > > > > else if (temp == (char)51)
> > > > > {cout <<"le programme reconait la valeur 3 dans temp \n";
> > > > > switch (i)
> > > > > {case 0:ip1=(ip1*10)+3;
> > > > > break;
> > > > > case 1:ip2=(ip2*10)+3;
> > > > > break;
> > > > > case 2:ip3=(ip3*10)+3;
> > > > > break;
> > > > > case 3:ip4=(ip4*10)+3;
> > > > > break;
> > > > > }
> > > > > }
> > > > > else if (temp == (char)52)
> > > > > {cout <<"le programme reconait la valeur 4 dans temp \n";
> > > > > switch (i)
> > > > > {case 0:ip1=(ip1*10)+4;
> > > > > break;
> > > > > case 1:ip2=(ip2*10)+4;
> > > > > break;
> > > > > case 2:ip3=(ip3*10)+4;
> > > > > break;
> > > > > case 3:ip4=(ip4*10)+4;
> > > > > break;
> > > > > }
> > > > > }
> > > > > else if (temp == (char)53)
> > > > > {cout <<"le programme reconait la valeur 5 dans temp \n";
> > > > > switch (i)
> > > > > {case 0:ip1=(ip1*10)+5;
> > > > > break;
> > > > > case 1:ip2=(ip2*10)+5;
> > > > > break;
> > > > > case 2:ip3=(ip3*10)+5;
> > > > > break;
> > > > > case 3:ip4=(ip4*10)+5;
> > > > > break;
> > > > > }
> > > > > }
> > > > > else if (temp == (char)54)
> > > > > {cout <<"le programme reconait la valeur 6 dans temp \n";
> > > > > switch (i)
> > > > > {case 0:ip1=(ip1*10)+6;
> > > > > break;
> > > > > case 1:ip2=(ip2*10)+6;
> > > > > break;
> > > > > case 2:ip3=(ip3*10)+6;
> > > > > break;
> > > > > case 3:ip4=(ip4*10)+6;
> > > > > break;
> > > > > }
> > > > > }
> > > > > else if (temp == (char)55)
> > > > > {cout <<"le programme reconait la valeur 7 dans temp \n";
> > > > > switch (i)
> > > > > {case 0:ip1=(ip1*10)+7;
> > > > > break;
> > > > > case 1:ip2=(ip2*10)+7;
> > > > > break;
> > > > > case 2:ip3=(ip3*10)+7;
> > > > > break;
> > > > > case 3:ip4=(ip4*10)+7;
> > > > > break;
> > > > > }
> > > > > }
> > > > > else if (temp == (char)56)
> > > > > {cout <<"le programme reconait la valeur 8 dans temp \n";
> > > > > switch (i)
> > > > > {case 0:ip1=(ip1*10)+8;
> > > > > break;
> > > > > case 1:ip2=(ip2*10)+8;
> > > > > break;
> > > > > case 2:ip3=(ip3*10)+8;
> > > > > break;
> > > > > case 3:ip4=(ip4*10)+8;
> > > > > break;
> > > > > }
> > > > > }
> > > > > else if (temp == (char)57)
> > > > > {cout <<"le programme reconait la valeur 9 dans temp \n";
> > > > > switch (i)
> > > > > {case 0:ip1=(ip1*10)+9;
> > > > > break;
> > > > > case 1:ip2=(ip2*10)+9;
> > > > > break;
> > > > > case 2:ip3=(ip3*10)+9;
> > > > > break;
> > > > > case 3:ip4=(ip4*10)+9;
> > > > > break;
> > > > > }
> > > > > }
> > > > > else if (temp == (char)46)
> > > > > {cout <<"le programme reconait la valeur . dans temp \n";
> > > > > i++;
> > > > > }
> > > > > else if (temp == (char)42)
> > > > > cout <<"le programme reconait la valeur * dans temp \n";
> > > > >
> > > > > //test des caracteres,est-ce que c un . ou n'importe quel chiffre?
> > > > > //si oui on fait des operations avec
> > > > >
> > > > >
> > > > > }
> > > > >
> > > > > cout<<endl;
> > > > >
> > > > > cout <<endl;
> > > > >
> > > > >
> > > > >
> > > > > for (n1=0;n1<longueurfin;n1++)
> > > > > {temp1=ipfin[n1];
> > > > > cout<<"extraction caractere" <<n1<<":"<<temp1<<endl;
> > > > > if (temp1 == (char)48)
> > > > > {cout <<"le programme reconnait la valeur 0 dans temp\n";
> > > > > switch (j)
> > > > > {case 0:ip10=(ip10*10)+0;
> > > > > break;
> > > > > case 1:ip20=(ip20*10)+0;
> > > > > break;
> > > > > case 2:ip30=(ip30*10)+0;
> > > > > break;
> > > > > case 3:ip40=(ip40*10)+0;
> > > > > break;
> > > > > }
> > > > > }
> > > > > else if (temp1 == (char)49)
> > > > > {cout <<"le programme reconait la valeur 1 dans temp \n";
> > > > > switch (j)
> > > > > {case 0:ip10=(ip10*10)+1;
> > > > > break;
> > > > > case 1:ip20=(ip20*10)+1;
> > > > > break;
> > > > > case 2:ip30=(ip30*10)+1;
> > > > > break;
> > > > > case 3:ip40=(ip40*10)+1;
> > > > > break;
> > > > > }
> > > > > }
> > > > > else if (temp1 == (char)50)
> > > > > {cout <<"le programme reconait la valeur 2 dans temp \n";
> > > > > switch (j)
> > > > > {case 0:ip10=(ip10*10)+2;
> > > > > break;
> > > > > case 1:ip20=(ip20*10)+2;
> > > > > break;
> > > > > case 2:ip30=(ip30*10)+2;
> > > > > break;
> > > > > case 3:ip40=(ip40*10)+2;
> > > > > break;
> > > > > }
> > > > > }
> > > > > else if (temp1 == (char)51)
> > > > > {cout <<"le programme reconait la valeur 3 dans temp \n";
> > > > > switch (j)
> > > > > {case 0:ip10=(ip10*10)+3;
> > > > > break;
> > > > > case 1:ip20=(ip20*10)+3;
> > > > > break;
> > > > > case 2:ip30=(ip30*10)+3;
> > > > > break;
> > > > > case 3:ip40=(ip40*10)+3;
> > > > > break;
> > > > > }
> > > > > }
> > > > > else if (temp1 == (char)52)
> > > > > {cout <<"le programme reconait la valeur 4 dans temp \n";
> > > > > switch (j)
> > > > > {case 0:ip10=(ip10*10)+4;
> > > > > break;
> > > > > case 1:ip20=(ip20*10)+4;
> > > > > break;
> > > > > case 2:ip30=(ip30*10)+4;
> > > > > break;
> > > > > case 3:ip40=(ip40*10)+4;
> > > > > break;
> > > > > }
> > > > > }
> > > > > else if (temp1 == (char)53)
> > > > > {cout <<"le programme reconait la valeur 5 dans temp \n";
> > > > > switch (j)
> > > > > {case 0:ip10=(ip10*10)+5;
> > > > > break;
> > > > > case 1:ip20=(ip20*10)+5;
> > > > > break;
> > > > > case 2:ip30=(ip30*10)+5;
> > > > > break;
> > > > > case 3:ip40=(ip40*10)+5;
> > > > > break;
> > > > > }
> > > > > }
> > > > > else if (temp1 == (char)54)
> > > > > {cout <<"le programme reconait la valeur 6 dans temp \n";
> > > > > switch (j)
> > > > > {case 0:ip10=(ip10*10)+6;
> > > > > break;
> > > > > case 1:ip20=(ip20*10)+6;
> > > > > break;
> > > > > case 2:ip30=(ip30*10)+6;
> > > > > break;
> > > > > case 3:ip40=(ip40*10)+6;
> > > > > break;
> > > > > }
> > > > > }
> > > > > else if (temp1 == (char)55)
> > > > > {cout <<"le programme reconait la valeur 7 dans temp \n";
> > > > > switch (j)
> > > > > {case 0:ip10=(ip10*10)+7;
> > > > > break;
> > > > > case 1:ip20=(ip20*10)+7;
> > > > > break;
> > > > > case 2:ip30=(ip30*10)+7;
> > > > > break;
> > > > > case 3:ip40=(ip40*10)+7;
> > > > > break;
> > > > > }
> > > > > }
> > > > > else if (temp1 == (char)56)
> > > > > {cout <<"le programme reconait la valeur 8 dans temp \n";
> > > > > switch (j)
> > > > > {case 0:ip10=(ip10*10)+8;
> > > > > break;
> > > > > case 1:ip20=(ip20*10)+8;
> > > > > break;
> > > > > case 2:ip30=(ip30*10)+8;
> > > > > break;
> > > > > case 3:ip40=(ip40*10)+8;
> > > > > break;
> > > > > }
> > > > > }
> > > > > else if (temp1 == (char)57)
> > > > > {cout <<"le programme reconait la valeur 9 dans temp \n";
> > > > > switch (j)
> > > > > {case 0:ip10=(ip10*10)+9;
> > > > > break;
> > > > > case 1:ip20=(ip20*10)+9;
> > > > > break;
> > > > > case 2:ip30=(ip30*10)+9;
> > > > > break;
> > > > > case 3:ip40=(ip40*10)+9;
> > > > > break;
> > > > > }
> > > > > }
> > > > > else if (temp1 == (char)46)
> > > > > {cout <<"le programme reconait la valeur . dans temp \n";
> > > > > j++;
> > > > > }
> > > > > else if (temp1 == (char)42)
> > > > > cout <<"le programme reconait la valeur * dans temp \n";
> > > > >
> > > > > //test des caracteres,est-ce que c un . ou n'importe quel chiffre?
> > > > > //si oui on fait des operations avec
> > > > >
> > > > >
> > > > > }
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > //ensuite on affiche les valeurs
> > > > > cout <<"voici les 4 chiffres de l'ip de debut:\n"<<
> > > > > ip1<<"\t"<<ip2<<"\t"<<ip3<<"\t"<<ip4<<"\n";
> > > > >
> > > > >
> > > > > //ensuite on affiche les valeurs
> > > > > cout <<"voici les 4 chiffres de l'ip de fin:\n";
> > > > > cout <<ip10<<"\t"<<ip20<<"\t"<<ip30<<"\t"<<ip40<<"\n";
> > > > >
> > > > > cout<<"traitement de la liste d'ip"<<endl;
> > > > >
> > > > >
> > > > > do
> > > > > {
> > > > > ip4++;
> > > > > if (ip3>254 && ip4>255)
> > > > > {ip3=0;
> > > > > ip2++;
> > > > >
> > > > > }
> > > > > if (ip2>255)
> > > > > {
> > > > > ip1++;
> > > > > ip2=0;
> > > > > }
> > > > >
> > > > > if (ip4>255)
> > > > > {
> > > > >
> > > > > ip4=0;
> > > > > ++ip3;
> > > > > if (ip3>255 && ip4>255)
> > > > > {ip3=0;}
> > > > > }
> > > > >
> > > > > cout<<ip1<<"\t"<<ip2<<"\t"<<ip3<<"\t"<<ip4<<"\n";
> > > > >
> > > > > }
> > > > > while(ip4<ip40 || ip3<ip30 ||ip2<ip20||ip1<ip10);
> > > > >
> > > > >
> > > > > cout<<"fin du progz ;)\n";
> > > > >
> > > > >
> > > > > return 0;
> > > > > }
> > > > >
> > > >
> > >
> >
>
mercredi 6 août 2003 à 20:51:11 | Re : tite aide svp!!

chris5874

salut,
je ne suis pas trop sceptique sur ça,car je vois ce que tu veux dire avec les octets,ce qu'ils peuvent stocker!
je suis surtout sceptique sur la méthode à employer pour mettre l'ip dans le unsigned long int(j'oubliais de préciser,scanf est exclu car ce code sera intégré dans un prog api windows)
pourrais-tu me donner une ptite piste pour que je sache par ou débuter pour la conversion?
merci d'avance(et dsl de te faire perdre ton temps!)



-------------------------------
Réponse au message :
-------------------------------

> Salut,
> Un unsigned long dispose de 4 fois une plage de valeur de 0 a 255. Je comprend pas pourquoi tu est septique.
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > salut!
> > je vois environ ce que tu veux dire,seulement je suis un peut sceptique sur la méthode!
> > je comprends le coup des 4 octets,par contre,faire tenir toute l'ip dans le unsigned long,je vois encore mal,dsl
> > au fait,dsl aussi pour mon erreur d'avant!
> > penses-tu que je pourrais reexploiter ce script,et arriver à mettre l'ip sous la forme unsigned long?ou comment penses-tu que je devrais faire pour y arriver(dsl je suis newbies!)?
> > encore une fois,merci pour tes réponses ,c sympa de ta part de m'aider à progresser ;)
> >
> >
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > Salut,
> > > Un unsigned long est un entier non signé de 4 octet
> > > Un octet non signé va de 0 jusqua 255
> > > Donc tu met un numero dans chaque octet et toute ton ip est dans l'insigned long.
> > >
> > > Pour ton prog, un exemple:
> > > Si tu as une ip 80.80.80.80, tu la convertis en unsigned long A, et si tu fais A++, et que tu la reconvertis en format lisible, ben tu aura 80.80.80.81
> > >
> > > Donc moi je convertirais l'adresse de depart et de fin en long, et ensuite une simple boucle pour afficher toutes les IP entre ces 2 ip de depart et de fin.
> > >
> > >
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > >
> > > > salut!
> > > > merci de ta réponse ;)
> > > > j'aimerai bien savoir comment tu fais,
> > > > car il me semble qu'au max avec un unsigned long int,tu va jusqu'à 4 294 967 295!
> > > > je peux toujours me tromper,et si c le cas,j'admettrai mon erreur,seulement,je voudrais pouvoir manipuler l'ensemble des ip possibles,cad,de 0.0.0.0 à 255.255.255.255!
> > > > merci d'avance pour ta réponse!
> > > >
> > > >
> > > >
> > > > -------------------------------
> > > > Réponse au message :
> > > > -------------------------------
> > > >
> > > > > Salut,
> > > > > Honnetement je pense que lister et manipuler des IP sous la forme de chaine de caractere du type xxx.xxx.xxx.xxx est une mauvaise idée.
> > > > > Moi je convertirais plutot les IP en unsigned long, qui sont de loin bcp plus facile a manipuler.
> > > > > Ton code tiendrait en 15 lignes comme ca je pense.
> > > > > Si tu as besoin d'aide... :)
> > > > >
> > > > >
> > > > >
> > > > > -------------------------------
> > > > > Réponse au message :
> > > > > -------------------------------
> > > > >
> > > > > > salut tout le monde!
> > > > > > j'aurais besoinde votre aide svp!
> > > > > > je suis en train de développer un programme qui va lister toutes les ip contenues entre les ip de début et de fin(entrées par l'utilisateur)
> > > > > > vous trouverez ci dessous le source du projet!
> > > > > > merci d'avance pour votre aide!
> > > > > >
> > > > > > ps:le prog ne liste pas correctement les ip,notamment qd on passe de 0.0.255.255 à 0.1.0.0(bug car après 0.0.255.255,le prog passe directement à 0.1.1.0)
> > > > > > encore une fois,merci d'avance pour votre aide!
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > #include <iostream.h>
> > > > > > #include <string.h>
> > > > > > #include <stdio.h>
> > > > > >
> > > > > > int main()
> > > > > > {
> > > > > > char ip[16],temp,temp1,ipfin[16];
> > > > > > int longueur,longueurfin,n,n1,ip1=0,ip2=0,ip3=0,ip4=0,i=0,j=0,ip10=0,ip20=0,ip30=0,ip40=0;
> > > > > >
> > > > > > cout <<"entrez une ip de debut au format a.b.c.d\n";
> > > > > > cin >> ip;
> > > > > > cout <<"cette ip est une chaine de caractères de longeur " ;
> > > > > > longueur = strlen (ip);//fonction permettant de retourner la longeur de la chaine de caractere!
> > > > > >
> > > > > > cout << longueur<<endl;//ensuite on l'affiche!
> > > > > > cout <<"entrez une ip de fin au format a.b.c.d\n";
> > > > > > cin>>ipfin;
> > > > > >
> > > > > > cout <<"cette ip est une chaine de caractères de longeur " ;
> > > > > > longueurfin = strlen (ipfin);//fonction permettant de retourner la longeur de la chaine de caractere!
> > > > > > cout << longueurfin<<endl;//ensuite on l'affiche!
> > > > > >
> > > > > >
> > > > > > for (n=0;n<longueur;n++)
> > > > > > {temp=ip[n];
> > > > > > cout<<"extraction caractere" <<n<<":"<<temp<<endl;
> > > > > > if (temp == (char)48)
> > > > > > {cout <<"le programme reconnait la valeur 0 dans temp\n";
> > > > > > switch (i)
> > > > > > {case 0:ip1=(ip1*10)+0;
> > > > > > break;
> > > > > > case 1:ip2=(ip2*10)+0;
> > > > > > break;
> > > > > > case 2:ip3=(ip3*10)+0;
> > > > > > break;
> > > > > > case 3:ip4=(ip4*10)+0;
> > > > > > break;
> > > > > > }
> > > > > > }
> > > > > > else if (temp == (char)49)
> > > > > > {cout <<"le programme reconait la valeur 1 dans temp \n";
> > > > > > switch (i)
> > > > > > {case 0:ip1=(ip1*10)+1;
> > > > > > break;
> > > > > > case 1:ip2=(ip2*10)+1;
> > > > > > break;
> > > > > > case 2:ip3=(ip3*10)+1;
> > > > > > break;
> > > > > > case 3:ip4=(ip4*10)+1;
> > > > > > break;
> > > > > > }
> > > > > > }
> > > > > > else if (temp == (char)50)
> > > > > > {cout <<"le programme reconait la valeur 2 dans temp \n";
> > > > > > switch (i)
> > > > > > {case 0:ip1=(ip1*10)+2;
> > > > > > break;
> > > > > > case 1:ip2=(ip2*10)+2;
> > > > > > break;
> > > > > > case 2:ip3=(ip3*10)+2;
> > > > > > break;
> > > > > > case 3:ip4=(ip4*10)+2;
> > > > > > break;
> > > > > > }
> > > > > > }
> > > > > > else if (temp == (char)51)
> > > > > > {cout <<"le programme reconait la valeur 3 dans temp \n";
> > > > > > switch (i)
> > > > > > {case 0:ip1=(ip1*10)+3;
> > > > > > break;
> > > > > > case 1:ip2=(ip2*10)+3;
> > > > > > break;
> > > > > > case 2:ip3=(ip3*10)+3;
> > > > > > break;
> > > > > > case 3:ip4=(ip4*10)+3;
> > > > > > break;
> > > > > > }
> > > > > > }
> > > > > > else if (temp == (char)52)
> > > > > > {cout <<"le programme reconait la valeur 4 dans temp \n";
> > > > > > switch (i)
> > > > > > {case 0:ip1=(ip1*10)+4;
> > > > > > break;
> > > > > > case 1:ip2=(ip2*10)+4;
> > > > > > break;
> > > > > > case 2:ip3=(ip3*10)+4;
> > > > > > break;
> > > > > > case 3:ip4=(ip4*10)+4;
> > > > > > break;
> > > > > > }
> > > > > > }
> > > > > > else if (temp == (char)53)
> > > > > > {cout <<"le programme reconait la valeur 5 dans temp \n";
> > > > > > switch (i)
> > > > > > {case 0:ip1=(ip1*10)+5;
> > > > > > break;
> > > > > > case 1:ip2=(ip2*10)+5;
> > > > > > break;
> > > > > > case 2:ip3=(ip3*10)+5;
> > > > > > break;
> > > > > > case 3:ip4=(ip4*10)+5;
> > > > > > break;
> > > > > > }
> > > > > > }
> > > > > > else if (temp == (char)54)
> > > > > > {cout <<"le programme reconait la valeur 6 dans temp \n";
> > > > > > switch (i)
> > > > > > {case 0:ip1=(ip1*10)+6;
> > > > > > break;
> > > > > > case 1:ip2=(ip2*10)+6;
> > > > > > break;
> > > > > > case 2:ip3=(ip3*10)+6;
> > > > > > break;
> > > > > > case 3:ip4=(ip4*10)+6;
> > > > > > break;
> > > > > > }
> > > > > > }
> > > > > > else if (temp == (char)55)
> > > > > > {cout <<"le programme reconait la valeur 7 dans temp \n";
> > > > > > switch (i)
> > > > > > {case 0:ip1=(ip1*10)+7;
> > > > > > break;
> > > > > > case 1:ip2=(ip2*10)+7;
> > > > > > break;
> > > > > > case 2:ip3=(ip3*10)+7;
> > > > > > break;
> > > > > > case 3:ip4=(ip4*10)+7;
> > > > > > break;
> > > > > > }
> > > > > > }
> > > > > > else if (temp == (char)56)
> > > > > > {cout <<"le programme reconait la valeur 8 dans temp \n";
> > > > > > switch (i)
> > > > > > {case 0:ip1=(ip1*10)+8;
> > > > > > break;
> > > > > > case 1:ip2=(ip2*10)+8;
> > > > > > break;
> > > > > > case 2:ip3=(ip3*10)+8;
> > > > > > break;
> > > > > > case 3:ip4=(ip4*10)+8;
> > > > > > break;
> > > > > > }
> > > > > > }
> > > > > > else if (temp == (char)57)
> > > > > > {cout <<"le programme reconait la valeur 9 dans temp \n";
> > > > > > switch (i)
> > > > > > {case 0:ip1=(ip1*10)+9;
> > > > > > break;
> > > > > > case 1:ip2=(ip2*10)+9;
> > > > > > break;
> > > > > > case 2:ip3=(ip3*10)+9;
> > > > > > break;
> > > > > > case 3:ip4=(ip4*10)+9;
> > > > > > break;
> > > > > > }
> > > > > > }
> > > > > > else if (temp == (char)46)
> > > > > > {cout <<"le programme reconait la valeur . dans temp \n";
> > > > > > i++;
> > > > > > }
> > > > > > else if (temp == (char)42)
> > > > > > cout <<"le programme reconait la valeur * dans temp \n";
> > > > > >
> > > > > > //test des caracteres,est-ce que c un . ou n'importe quel chiffre?
> > > > > > //si oui on fait des operations avec
> > > > > >
> > > > > >
> > > > > > }
> > > > > >
> > > > > > cout<<endl;
> > > > > >
> > > > > > cout <<endl;
> > > > > >
> > > > > >
> > > > > >
> > > > > > for (n1=0;n1<longueurfin;n1++)
> > > > > > {temp1=ipfin[n1];
> > > > > > cout<<"extraction caractere" <<n1<<":"<<temp1<<endl;
> > > > > > if (temp1 == (char)48)
> > > > > > {cout <<"le programme reconnait la valeur 0 dans temp\n";
> > > > > > switch (j)
> > > > > > {case 0:ip10=(ip10*10)+0;
> > > > > > break;
> > > > > > case 1:ip20=(ip20*10)+0;
> > > > > > break;
> > > > > > case 2:ip30=(ip30*10)+0;
> > > > > > break;
> > > > > > case 3:ip40=(ip40*10)+0;
> > > > > > break;
> > > > > > }
> > > > > > }
> > > > > > else if (temp1 == (char)49)
> > > > > > {cout <<"le programme reconait la valeur 1 dans temp \n";
> > > > > > switch (j)
> > > > > > {case 0:ip10=(ip10*10)+1;
> > > > > > break;
> > > > > > case 1:ip20=(ip20*10)+1;
> > > > > > break;
> > > > > > case 2:ip30=(ip30*10)+1;
> > > > > > break;
> > > > > > case 3:ip40=(ip40*10)+1;
> > > > > > break;
> > > > > > }
> > > > > > }
> > > > > > else if (temp1 == (char)50)
> > > > > > {cout <<"le programme reconait la valeur 2 dans temp \n";
> > > > > > switch (j)
> > > > > > {case 0:ip10=(ip10*10)+2;
> > > > > > break;
> > > > > > case 1:ip20=(ip20*10)+2;
> > > > > > break;
> > > > > > case 2:ip30=(ip30*10)+2;
> > > > > > break;
> > > > > > case 3:ip40=(ip40*10)+2;
> > > > > > break;
> > > > > > }
> > > > > > }
> > > > > > else if (temp1 == (char)51)
> > > > > > {cout <<"le programme reconait la valeur 3 dans temp \n";
> > > > > > switch (j)
> > > > > > {case 0:ip10=(ip10*10)+3;
> > > > > > break;
> > > > > > case 1:ip20=(ip20*10)+3;
> > > > > > break;
> > > > > > case 2:ip30=(ip30*10)+3;
> > > > > > break;
> > > > > > case 3:ip40=(ip40*10)+3;
> > > > > > break;
> > > > > > }
> > > > > > }
> > > > > > else if (temp1 == (char)52)
> > > > > > {cout <<"le programme reconait la valeur 4 dans temp \n";
> > > > > > switch (j)
> > > > > > {case 0:ip10=(ip10*10)+4;
> > > > > > break;
> > > > > > case 1:ip20=(ip20*10)+4;
> > > > > > break;
> > > > > > case 2:ip30=(ip30*10)+4;
> > > > > > break;
> > > > > > case 3:ip40=(ip40*10)+4;
> > > > > > break;
> > > > > > }
> > > > > > }
> > > > > > else if (temp1 == (char)53)
> > > > > > {cout <<"le programme reconait la valeur 5 dans temp \n";
> > > > > > switch (j)
> > > > > > {case 0:ip10=(ip10*10)+5;
> > > > > > break;
> > > > > > case 1:ip20=(ip20*10)+5;
> > > > > > break;
> > > > > > case 2:ip30=(ip30*10)+5;
> > > > > > break;
> > > > > > case 3:ip40=(ip40*10)+5;
> > > > > > break;
> > > > > > }
> > > > > > }
> > > > > > else if (temp1 == (char)54)
> > > > > > {cout <<"le programme reconait la valeur 6 dans temp \n";
> > > > > > switch (j)
> > > > > > {case 0:ip10=(ip10*10)+6;
> > > > > > break;
> > > > > > case 1:ip20=(ip20*10)+6;
> > > > > > break;
> > > > > > case 2:ip30=(ip30*10)+6;
> > > > > > break;
> > > > > > case 3:ip40=(ip40*10)+6;
> > > > > > break;
> > > > > > }
> > > > > > }
> > > > > > else if (temp1 == (char)55)
> > > > > > {cout <<"le programme reconait la valeur 7 dans temp \n";
> > > > > > switch (j)
> > > > > > {case 0:ip10=(ip10*10)+7;
> > > > > > break;
> > > > > > case 1:ip20=(ip20*10)+7;
> > > > > > break;
> > > > > > case 2:ip30=(ip30*10)+7;
> > > > > > break;
> > > > > > case 3:ip40=(ip40*10)+7;
> > > > > > break;
> > > > > > }
> > > > > > }
> > > > > > else if (temp1 == (char)56)
> > > > > > {cout <<"le programme reconait la valeur 8 dans temp \n";
> > > > > > switch (j)
> > > > > > {case 0:ip10=(ip10*10)+8;
> > > > > > break;
> > > > > > case 1:ip20=(ip20*10)+8;
> > > > > > break;
> > > > > > case 2:ip30=(ip30*10)+8;
> > > > > > break;
> > > > > > case 3:ip40=(ip40*10)+8;
> > > > > > break;
> > > > > > }
> > > > > > }
> > > > > > else if (temp1 == (char)57)
> > > > > > {cout <<"le programme reconait la valeur 9 dans temp \n";
> > > > > > switch (j)
> > > > > > {case 0:ip10=(ip10*10)+9;
> > > > > > break;
> > > > > > case 1:ip20=(ip20*10)+9;
> > > > > > break;
> > > > > > case 2:ip30=(ip30*10)+9;
> > > > > > break;
> > > > > > case 3:ip40=(ip40*10)+9;
> > > > > > break;
> > > > > > }
> > > > > > }
> > > > > > else if (temp1 == (char)46)
> > > > > > {cout <<"le programme reconait la valeur . dans temp \n";
> > > > > > j++;
> > > > > > }
> > > > > > else if (temp1 == (char)42)
> > > > > > cout <<"le programme reconait la valeur * dans temp \n";
> > > > > >
> > > > > > //test des caracteres,est-ce que c un . ou n'importe quel chiffre?
> > > > > > //si oui on fait des operations avec
> > > > > >
> > > > > >
> > > > > > }
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > //ensuite on affiche les valeurs
> > > > > > cout <<"voici les 4 chiffres de l'ip de debut:\n"<<
> > > > > > ip1<<"\t"<<ip2<<"\t"<<ip3<<"\t"<<ip4<<"\n";
> > > > > >
> > > > > >
> > > > > > //ensuite on affiche les valeurs
> > > > > > cout <<"voici les 4 chiffres de l'ip de fin:\n";
> > > > > > cout <<ip10<<"\t"<<ip20<<"\t"<<ip30<<"\t"<<ip40<<"\n";
> > > > > >
> > > > > > cout<<"traitement de la liste d'ip"<<endl;
> > > > > >
> > > > > >
> > > > > > do
> > > > > > {
> > > > > > ip4++;
> > > > > > if (ip3>254 && ip4>255)
> > > > > > {ip3=0;
> > > > > > ip2++;
> > > > > >
> > > > > > }
> > > > > > if (ip2>255)
> > > > > > {
> > > > > > ip1++;
> > > > > > ip2=0;
> > > > > > }
> > > > > >
> > > > > > if (ip4>255)
> > > > > > {
> > > > > >
> > > > > > ip4=0;
> > > > > > ++ip3;
> > > > > > if (ip3>255 && ip4>255)
> > > > > > {ip3=0;}
> > > > > > }
> > > > > >
> > > > > > cout<<ip1<<"\t"<<ip2<<"\t"<<ip3<<"\t"<<ip4<<"\n";
> > > > > >
> > > > > > }
> > > > > > while(ip4<ip40 || ip3<ip30 ||ip2<ip20||ip1<ip10);
> > > > > >
> > > > > >
> > > > > > cout<<"fin du progz ;)\n";
> > > > > >
> > > > > >
> > > > > > return 0;
> > > > > > }
> > > > > >
> > > > >
> > > >
> > >
> >
>
mercredi 6 août 2003 à 21:20:36 | Re : tite aide svp!!

aardman

Membre Club
Salut,
je parle d'unsigned long, pas d' " unsigned long int ".
Voila une macro qui converti 4 int en 1 unsigned long:
#define IPTOLONG(a, b, c, d) ((unsigned long) (a << 24) | (b << 16) | (c << 8) | d)

Ca peut te servir a comprendre.

Pour faire un prog qui liste les IP comme tu voulais faire au debut, il faudrais faire 2 fonctions:
- une qui convertit une IP en char * en unsigned long,
- une qui converti un unsigned long en char *.
Apres le reste, ca sera du gateau.

-------------------------------
Réponse au message :
-------------------------------

> salut,
> je ne suis pas trop sceptique sur ça,car je vois ce que tu veux dire avec les octets,ce qu'ils peuvent stocker!
> je suis surtout sceptique sur la méthode à employer pour mettre l'ip dans le unsigned long int(j'oubliais de préciser,scanf est exclu car ce code sera intégré dans un prog api windows)
> pourrais-tu me donner une ptite piste pour que je sache par ou débuter pour la conversion?
> merci d'avance(et dsl de te faire perdre ton temps!)
>
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Salut,
> > Un unsigned long dispose de 4 fois une plage de valeur de 0 a 255. Je comprend pas pourquoi tu est septique.
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > salut!
> > > je vois environ ce que tu veux dire,seulement je suis un peut sceptique sur la méthode!
> > > je comprends le coup des 4 octets,par contre,faire tenir toute l'ip dans le unsigned long,je vois encore mal,dsl
> > > au fait,dsl aussi pour mon erreur d'avant!
> > > penses-tu que je pourrais reexploiter ce script,et arriver à mettre l'ip sous la forme unsigned long?ou comment penses-tu que je devrais faire pour y arriver(dsl je suis newbies!)?
> > > encore une fois,merci pour tes réponses ,c sympa de ta part de m'aider à progresser ;)
> > >
> > >
> > >
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > Salut,
> > > > Un unsigned long est un entier non signé de 4 octet
> > > > Un octet non signé va de 0 jusqua 255
> > > > Donc tu met un numero dans chaque octet et toute ton ip est dans l'insigned long.
> > > >
> > > > Pour ton prog, un exemple:
> > > > Si tu as une ip 80.80.80.80, tu la convertis en unsigned long A, et si tu fais A++, et que tu la reconvertis en format lisible, ben tu aura 80.80.80.81
> > > >
> > > > Donc moi je convertirais l'adresse de depart et de fin en long, et ensuite une simple boucle pour afficher toutes les IP entre ces 2 ip de depart et de fin.
> > > >
> > > >
> > > >
> > > > -------------------------------
> > > > Réponse au message :
> > > > -------------------------------
> > > >
> > > > >
> > > > > salut!
> > > > > merci de ta réponse ;)
> > > > > j'aimerai bien savoir comment tu fais,
> > > > > car il me semble qu'au max avec un unsigned long int,tu va jusqu'à 4 294 967 295!
> > > > > je peux toujours me tromper,et si c le cas,j'admettrai mon erreur,seulement,je voudrais pouvoir manipuler l'ensemble des ip possibles,cad,de 0.0.0.0 à 255.255.255.255!
> > > > > merci d'avance pour ta réponse!
> > > > >
> > > > >
> > > > >
> > > > > -------------------------------
> > > > > Réponse au message :
> > > > > -------------------------------
> > > > >
> > > > > > Salut,
> > > > > > Honnetement je pense que lister et manipuler des IP sous la forme de chaine de caractere du type xxx.xxx.xxx.xxx est une mauvaise idée.
> > > > > > Moi je convertirais plutot les IP en unsigned long, qui sont de loin bcp plus facile a manipuler.
> > > > > > Ton code tiendrait en 15 lignes comme ca je pense.
> > > > > > Si tu as besoin d'aide... :)
> > > > > >
> > > > > >
> > > > > >
> > > > > > -------------------------------
> > > > > > Réponse au message :
> > > > > > -------------------------------
> > > > > >
> > > > > > > salut tout le monde!
> > > > > > > j'aurais besoinde votre aide svp!
> > > > > > > je suis en train de développer un programme qui va lister toutes les ip contenues entre les ip de début et de fin(entrées par l'utilisateur)
> > > > > > > vous trouverez ci dessous le source du projet!
> > > > > > > merci d'avance pour votre aide!
> > > > > > >
> > > > > > > ps:le prog ne liste pas correctement les ip,notamment qd on passe de 0.0.255.255 à 0.1.0.0(bug car après 0.0.255.255,le prog passe directement à 0.1.1.0)
> > > > > > > encore une fois,merci d'avance pour votre aide!
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > #include <iostream.h>
> > > > > > > #include <string.h>
> > > > > > > #include <stdio.h>
> > > > > > >
> > > > > > > int main()
> > > > > > > {
> > > > > > > char ip[16],temp,temp1,ipfin[16];
> > > > > > > int longueur,longueurfin,n,n1,ip1=0,ip2=0,ip3=0,ip4=0,i=0,j=0,ip10=0,ip20=0,ip30=0,ip40=0;
> > > > > > >
> > > > > > > cout <<"entrez une ip de debut au format a.b.c.d\n";
> > > > > > > cin >> ip;
> > > > > > > cout <<"cette ip est une chaine de caractères de longeur " ;
> > > > > > > longueur = strlen (ip);//fonction permettant de retourner la longeur de la chaine de caractere!
> > > > > > >
> > > > > > > cout << longueur<<endl;//ensuite on l'affiche!
> > > > > > > cout <<"entrez une ip de fin au format a.b.c.d\n";
> > > > > > > cin>>ipfin;
> > > > > > >
> > > > > > > cout <<"cette ip est une chaine de caractères de longeur " ;
> > > > > > > longueurfin = strlen (ipfin);//fonction permettant de retourner la longeur de la chaine de caractere!
> > > > > > > cout << longueurfin<<endl;//ensuite on l'affiche!
> > > > > > >
> > > > > > >
> > > > > > > for (n=0;n<longueur;n++)
> > > > > > > {temp=ip[n];
> > > > > > > cout<<"extraction caractere" <<n<<":"<<temp<<endl;
> > > > > > > if (temp == (char)48)
> > > > > > > {cout <<"le programme reconnait la valeur 0 dans temp\n";
> > > > > > > switch (i)
> > > > > > > {case 0:ip1=(ip1*10)+0;
> > > > > > > break;
> > > > > > > case 1:ip2=(ip2*10)+0;
> > > > > > > break;
> > > > > > > case 2:ip3=(ip3*10)+0;
> > > > > > > break;
> > > > > > > case 3:ip4=(ip4*10)+0;
> > > > > > > break;
> > > > > > > }
> > > > > > > }
> > > > > > > else if (temp == (char)49)
> > > > > > > {cout <<"le programme reconait la valeur 1 dans temp \n";
> > > > > > > switch (i)
> > > > > > > {case 0:ip1=(ip1*10)+1;
> > > > > > > break;
> > > > > > > case 1:ip2=(ip2*10)+1;
> > > > > > > break;
> > > > > > > case 2:ip3=(ip3*10)+1;
> > > > > > > break;
> > > > > > > case 3:ip4=(ip4*10)+1;
> > > > > > > break;
> > > > > > > }
> > > > > > > }
> > > > > > > else if (temp == (char)50)
> > > > > > > {cout <<"le programme reconait la valeur 2 dans temp \n";
> > > > > > > switch (i)
> > > > > > > {case 0:ip1=(ip1*10)+2;
> > > > > > > break;
> > > > > > > case 1:ip2=(ip2*10)+2;
> > > > > > > break;
> > > > > > > case 2:ip3=(ip3*10)+2;
> > > > > > > break;
> > > > > > > case 3:ip4=(ip4*10)+2;
> > > > > > > break;
> > > > > > > }
> > > > > > > }
> > > > > > > else if (temp == (char)51)
> > > > > > > {cout <<"le programme reconait la valeur 3 dans temp \n";
> > > > > > > switch (i)
> > > > > > > {case 0:ip1=(ip1*10)+3;
> > > > > > > break;
> > > > > > > case 1:ip2=(ip2*10)+3;
> > > > > > > break;
> > > > > > > case 2:ip3=(ip3*10)+3;
> > > > > > > break;
> > > > > > > case 3:ip4=(ip4*10)+3;
> > > > > > > break;
> > > > > > > }
> > > > > > > }
> > > > > > > else if (temp == (char)52)
> > > > > > > {cout <<"le programme reconait la valeur 4 dans temp \n";
> > > > > > > switch (i)
> > > > > > > {case 0:ip1=(ip1*10)+4;
> > > > > > > break;
> > > > > > > case 1:ip2=(ip2*10)+4;
> > > > > > > break;
> > > > > > > case 2:ip3=(ip3*10)+4;
> > > > > > > break;
> > > > > > > case 3:ip4=(ip4*10)+4;
> > > > > > > break;
> > > > > > > }
> > > > > > > }
> > > > > > > else if (temp == (char)53)
> > > > > > > {cout <<"le programme reconait la valeur 5 dans temp \n";
> > > > > > > switch (i)
> > > > > > > {case 0:ip1=(ip1*10)+5;
> > > > > > > break;
> > > > > > > case 1:ip2=(ip2*10)+5;
> > > > > > > break;
> > > > > > > case 2:ip3=(ip3*10)+5;
> > > > > > > break;
> > > > > > > case 3:ip4=(ip4*10)+5;
> > > > > > > break;
> > > > > > > }
> > > > > > > }
> > > > > > > else if (temp == (char)54)
> > > > > > > {cout <<"le programme reconait la valeur 6 dans temp \n";
> > > > > > > switch (i)
> > > > > > > {case 0:ip1=(ip1*10)+6;
> > > > > > > break;
> > > > > > > case 1:ip2=(ip2*10)+6;
> > > > > > > break;
> > > > > > > case 2:ip3=(ip3*10)+6;
> > > > > > > break;
> > > > > > > case 3:ip4=(ip4*10)+6;
> > > > > > > break;
> > > > > > > }
> > > > > > > }
> > > > > > > else if (temp == (char)55)
> > > > > > > {cout <<"le programme reconait la valeur 7 dans temp \n";
> > > > > > > switch (i)
> > > > > > > {case 0:ip1=(ip1*10)+7;
> > > > > > > break;
> > > > > > > case 1:ip2=(ip2*10)+7;
> > > > > > > break;
> > > > > > > case 2:ip3=(ip3*10)+7;
> > > > > > > break;
> > > > > > > case 3:ip4=(ip4*10)+7;
> > > > > > > break;
> > > > > > > }
> > > > > > > }
> > > > > > > else if (temp == (char)56)
> > > > > > > {cout <<"le programme reconait la valeur 8 dans temp \n";
> > > > > > > switch (i)
> > > > > > > {case 0:ip1=(ip1*10)+8;
> > > > > > > break;
> > > > > > > case 1:ip2=(ip2*10)+8;
> > > > > > > break;
> > > > > > > case 2:ip3=(ip3*10)+8;
> > > > > > > break;
> > > > > > > case 3:ip4=(ip4*10)+8;
> > > > > > > break;
> > > > > > > }
> > > > > > > }
> > > > > > > else if (temp == (char)57)
> > > > > > > {cout <<"le programme reconait la valeur 9 dans temp \n";
> > > > > > > switch (i)
> > > > > > > {case 0:ip1=(ip1*10)+9;
> > > > > > > break;
> > > > > > > case 1:ip2=(ip2*10)+9;
> > > > > > > break;
> > > > > > > case 2:ip3=(ip3*10)+9;
> > > > > > > break;
> > > > > > > case 3:ip4=(ip4*10)+9;
> > > > > > > break;
> > > > > > > }
> > > > > > > }
> > > > > > > else if (temp == (char)46)
> > > > > > > {cout <<"le programme reconait la valeur . dans temp \n";
> > > > > > > i++;
> > > > > > > }
> > > > > > > else if (temp == (char)42)
> > > > > > > cout <<"le programme reconait la valeur * dans temp \n";
> > > > > > >
> > > > > > > //test des caracteres,est-ce que c un . ou n'importe quel chiffre?
> > > > > > > //si oui on fait des operations avec
> > > > > > >
> > > > > > >
> > > > > > > }
> > > > > > >
> > > > > > > cout<<endl;
> > > > > > >
> > > > > > > cout <<endl;
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > for (n1=0;n1<longueurfin;n1++)
> > > > > > > {temp1=ipfin[n1];
> > > > > > > cout<<"extraction caractere" <<n1<<":"<<temp1<<endl;
> > > > > > > if (temp1 == (char)48)
> > > > > > > {cout <<"le programme reconnait la valeur 0 dans temp\n";
> > > > > > > switch (j)
> > > > > > > {case 0:ip10=(ip10*10)+0;
> > > > > > > break;
> > > > > > > case 1:ip20=(ip20*10)+0;
> > > > > > > break;
> > > > > > > case 2:ip30=(ip30*10)+0;
> > > > > > > break;
> > > > > > > case 3:ip40=(ip40*10)+0;
> > > > > > > break;
> > > > > > > }
> > > > > > > }
> > > > > > > else if (temp1 == (char)49)
> > > > > > > {cout <<"le programme reconait la valeur 1 dans temp \n";
> > > > > > > switch (j)
> > > > > > > {case 0:ip10=(ip10*10)+1;
> > > > > > > break;
> > > > > > > case 1:ip20=(ip20*10)+1;
> > > > > > > break;
> > > > > > > case 2:ip30=(ip30*10)+1;
> > > > > > > break;
> > > > > > > case 3:ip40=(ip40*10)+1;
> > > > > > > break;
> > > > > > > }
> > > > > > > }
> > > > > > > else if (temp1 == (char)50)
> > > > > > > {cout <<"le programme reconait la valeur 2 dans temp \n";
> > > > > > > switch (j)
> > > > > > > {case 0:ip10=(ip10*10)+2;
> > > > > > > break;
> > > > > > > case 1:ip20=(ip20*10)+2;
> > > > > > > break;
> > > > > > > case 2:ip30=(ip30*10)+2;
> > > > > > > break;
> > > > > > > case 3:ip40=(ip40*10)+2;
> > > > > > > break;
> > > > > > > }
> > > > > > > }
> > > > > > > else if (temp1 == (char)51)
> > > > > > > {cout <<"le programme reconait la valeur 3 dans temp \n";
> > > > > > > switch (j)
> > > > > > > {case 0:ip10=(ip10*10)+3;
> > > > > > > break;
> > > > > > > case 1:ip20=(ip20*10)+3;
> > > > > > > break;
> > > > > > > case 2:ip30=(ip30*10)+3;
> > > > > > > break;
> > > > > > > case 3:ip40=(ip40*10)+3;
> > > > > > > break;
> > > > > > > }
> > > > > > > }
> > > > > > > else if (temp1 == (char)52)
> > > > > > > {cout <<"le programme reconait la valeur 4 dans temp \n";
> > > > > > > switch (j)
> > > > > > > {case 0:ip10=(ip10*10)+4;
> > > > > > > break;
> > > > > > > case 1:ip20=(ip20*10)+4;
> > > > > > > break;
> > > > > > > case 2:ip30=(ip30*10)+4;
> > > > > > > break;
> > > > > > > case 3:ip40=(ip40*10)+4;
> > > > > > > break;
> > > > > > > }
> > > > > > > }
> > > > > > > else if (temp1 == (char)53)
> > > > > > > {cout <<"le programme reconait la valeur 5 dans temp \n";
> > > > > > > switch (j)
> > > > > > > {case 0:ip10=(ip10*10)+5;
> > > > > > > break;
> > > > > > > case 1:ip20=(ip20*10)+5;
> > > > > > > break;
> > > > > > > case 2:ip30=(ip30*10)+5;
> > > > > > > break;
> > > > > > > case 3:ip40=(ip40*10)+5;
> > > > > > > break;
> > > > > > > }
> > > > > > > }
> > > > > > > else if (temp1 == (char)54)
> > > > > > > {cout <<"le programme reconait la valeur 6 dans temp \n";
> > > > > > > switch (j)
> > > > > > > {case 0:ip10=(ip10*10)+6;
> > > > > > > break;
> > > > > > > case 1:ip20=(ip20*10)+6;
> > > > > > > break;
> > > > > > > case 2:ip30=(ip30*10)+6;
> > > > > > > break;
> > > > > > > case 3:ip40=(ip40*10)+6;
> > > > > > > break;
> > > > > > > }
> > > > > > > }
> > > > > > > else if (temp1 == (char)55)
> > > > > > > {cout <<"le programme reconait la valeur 7 dans temp \n";
> > > > > > > switch (j)
> > > > > > > {case 0:ip10=(ip10*10)+7;
> > > > > > > break;
> > > > > > > case 1:ip20=(ip20*10)+7;
> > > > > > > break;
> > > > > > > case 2:ip30=(ip30*10)+7;
> > > > > > > break;
> > > > > > > case 3:ip40=(ip40*10)+7;
> > > > > > > break;
> > > > > > > }
> > > > > > > }
> > > > > > > else if (temp1 == (char)56)
> > > > > > > {cout <<"le programme reconait la valeur 8 dans temp \n";
> > > > > > > switch (j)
> > > > > > > {case 0:ip10=(ip10*10)+8;
> > > > > > > break;
> > > > > > > case 1:ip20=(ip20*10)+8;
> > > > > > > break;
> > > > > > > case 2:ip30=(ip30*10)+8;
> > > > > > > break;
> > > > > > > case 3:ip40=(ip40*10)+8;
> > > > > > > break;
> > > > > > > }
> > > > > > > }
> > > > > > > else if (temp1 == (char)57)
> > > > > > > {cout <<"le programme reconait la valeur 9 dans temp \n";
> > > > > > > switch (j)
> > > > > > > {case 0:ip10=(ip10*10)+9;
> > > > > > > break;
> > > > > > > case 1:ip20=(ip20*10)+9;
> > > > > > > break;
> > > > > > > case 2:ip30=(ip30*10)+9;
> > > > > > > break;
> > > > > > > case 3:ip40=(ip40*10)+9;
> > > > > > > break;
> > > > > > > }
> > > > > > > }
> > > > > > > else if (temp1 == (char)46)
> > > > > > > {cout <<"le programme reconait la valeur . dans temp \n";
> > > > > > > j++;
> > > > > > > }
> > > > > > > else if (temp1 == (char)42)
> > > > > > > cout <<"le programme reconait la valeur * dans temp \n";
> > > > > > >
> > > > > > > //test des caracteres,est-ce que c un . ou n'importe quel chiffre?
> > > > > > > //si oui on fait des operations avec
> > > > > > >
> > > > > > >
> > > > > > > }
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > //ensuite on affiche les valeurs
> > > > > > > cout <<"voici les 4 chiffres de l'ip de debut:\n"<<
> > > > > > > ip1<<"\t"<<ip2<<"\t"<<ip3<<"\t"<<ip4<<"\n";
> > > > > > >
> > > > > > >
> > > > > > > //ensuite on affiche les valeurs
> > > > > > > cout <<"voici les 4 chiffres de l'ip de fin:\n";
> > > > > > > cout <<ip10<<"\t"<<ip20<<"\t"<<ip30<<"\t"<<ip40<<"\n";
> > > > > > >
> > > > > > > cout<<"traitement de la liste d'ip"<<endl;
> > > > > > >
> > > > > > >
> > > > > > > do
> > > > > > > {
> > > > > > > ip4++;
> > > > > > > if (ip3>254 && ip4>255)
> > > > > > > {ip3=0;
> > > > > > > ip2++;
> > > > > > >
> > > > > > > }
> > > > > > > if (ip2>255)
> > > > > > > {
> > > > > > > ip1++;
> > > > > > > ip2=0;
> > > > > > > }
> > > > > > >
> > > > > > > if (ip4>255)
> > > > > > > {
> > > > > > >
> > > > > > > ip4=0;
> > > > > > > ++ip3;
> > > > > > > if (ip3>255 && ip4>255)
> > > > > > > {ip3=0;}
> > > > > > > }
> > > > > > >
> > > > > > > cout<<ip1<<"\t"<<ip2<<"\t"<<ip3<<"\t"<<ip4<<"\n";
> > > > > > >
> > > > > > > }
> > > > > > > while(ip4<ip40 || ip3<ip30 ||ip2<ip20||ip1<ip10);
> > > > > > >
> > > > > > >
> > > > > > > cout<<"fin du progz ;)\n";
> > > > > > >
> > > > > > >
> > > > > > > return 0;
> > > > > > > }
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>
mercredi 6 août 2003 à 21:32:04 | Re : tite aide svp!!

chris5874


salut!
je comprends mieux à présent!
je pense que c'était surtout le int qui m'a induit en erreur!
en tout cas,je te remercie pour ton aide,je me doute que t'as surement des choses plus importantes à faire que de répondre aux questions d'un newbie,en tout cas,je vois beaucoup mieux maintenant ce que tu voulais dire!
et je te remercie de m'avoir aidé ;)
@+++


-------------------------------
Réponse au message :
-------------------------------

> Salut,
> je parle d'unsigned long, pas d' " unsigned long int ".
> Voila une macro qui converti 4 int en 1 unsigned long:
> #define IPTOLONG(a, b, c, d) ((unsigned long) (a << 24) | (b << 16) | (c << 8) | d)
>
> Ca peut te servir a comprendre.
>
> Pour faire un prog qui liste les IP comme tu voulais faire au debut, il faudrais faire 2 fonctions:
> - une qui convertit une IP en char * en unsigned long,
> - une qui converti un unsigned long en char *.
> Apres le reste, ca sera du gateau.
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > salut,
> > je ne suis pas trop sceptique sur ça,car je vois ce que tu veux dire avec les octets,ce qu'ils peuvent stocker!
> > je suis surtout sceptique sur la méthode à employer pour mettre l'ip dans le unsigned long int(j'oubliais de préciser,scanf est exclu car ce code sera intégré dans un prog api windows)
> > pourrais-tu me donner une ptite piste pour que je sache par ou débuter pour la conversion?
> > merci d'avance(et dsl de te faire perdre ton temps!)
> >
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > Salut,
> > > Un unsigned long dispose de 4 fois une plage de valeur de 0 a 255. Je comprend pas pourquoi tu est septique.
> > >
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > salut!
> > > > je vois environ ce que tu veux dire,seulement je suis un peut sceptique sur la méthode!
> > > > je comprends le coup des 4 octets,par contre,faire tenir toute l'ip dans le unsigned long,je vois encore mal,dsl
> > > > au fait,dsl aussi pour mon erreur d'avant!
> > > > penses-tu que je pourrais reexploiter ce script,et arriver à mettre l'ip sous la forme unsigned long?ou comment penses-tu que je devrais faire pour y arriver(dsl je suis newbies!)?
> > > > encore une fois,merci pour tes réponses ,c sympa de ta part de m'aider à progresser ;)
> > > >
> > > >
> > > >
> > > >
> > > > -------------------------------
> > > > Réponse au message :
> > > > -------------------------------
> > > >
> > > > > Salut,
> > > > > Un unsigned long est un entier non signé de 4 octet
> > > > > Un octet non signé va de 0 jusqua 255
> > > > > Donc tu met un numero dans chaque octet et toute ton ip est dans l'insigned long.
> > > > >
> > > > > Pour ton prog, un exemple:
> > > > > Si tu as une ip 80.80.80.80, tu la convertis en unsigned long A, et si tu fais A++, et que tu la reconvertis en format lisible, ben tu aura 80.80.80.81
> > > > >
> > > > > Donc moi je convertirais l'adresse de depart et de fin en long, et ensuite une simple boucle pour afficher toutes les IP entre ces 2 ip de depart et de fin.
> > > > >
> > > > >
> > > > >
> > > > > -------------------------------
> > > > > Réponse au message :
> > > > > -------------------------------
> > > > >
> > > > > >
> > > > > > salut!
> > > > > > merci de ta réponse ;)
> > > > > > j'aimerai bien savoir comment tu fais,
> > > > > > car il me semble qu'au max avec un unsigned long int,tu va jusqu'à 4 294 967 295!
> > > > > > je peux toujours me tromper,et si c le cas,j'admettrai mon erreur,seulement,je voudrais pouvoir manipuler l'ensemble des ip possibles,cad,de 0.0.0.0 à 255.255.255.255!
> > > > > > merci d'avance pour ta réponse!
> > > > > >
> > > > > >
> > > > > >
> > > > > > -------------------------------
> > > > > > Réponse au message :
> > > > > > -------------------------------
> > > > > >
> > > > > > > Salut,
> > > > > > > Honnetement je pense que lister et manipuler des IP sous la forme de chaine de caractere du type xxx.xxx.xxx.xxx est une mauvaise idée.
> > > > > > > Moi je convertirais plutot les IP en unsigned long, qui sont de loin bcp plus facile a manipuler.
> > > > > > > Ton code tiendrait en 15 lignes comme ca je pense.
> > > > > > > Si tu as besoin d'aide... :)
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > -------------------------------
> > > > > > > Réponse au message :
> > > > > > > -------------------------------
> > > > > > >
> > > > > > > > salut tout le monde!
> > > > > > > > j'aurais besoinde votre aide svp!
> > > > > > > > je suis en train de développer un programme qui va lister toutes les ip contenues entre les ip de début et de fin(entrées par l'utilisateur)
> > > > > > > > vous trouverez ci dessous le source du projet!
> > > > > > > > merci d'avance pour votre aide!
> > > > > > > >
> > > > > > > > ps:le prog ne liste pas correctement les ip,notamment qd on passe de 0.0.255.255 à 0.1.0.0(bug car après 0.0.255.255,le prog passe directement à 0.1.1.0)
> > > > > > > > encore une fois,merci d'avance pour votre aide!
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > #include <iostream.h>
> > > > > > > > #include <string.h>
> > > > > > > > #include <stdio.h>
> > > > > > > >
> > > > > > > > int main()
> > > > > > > > {
> > > > > > > > char ip[16],temp,temp1,ipfin[16];
> > > > > > > > int longueur,longueurfin,n,n1,ip1=0,ip2=0,ip3=0,ip4=0,i=0,j=0,ip10=0,ip20=0,ip30=0,ip40=0;
> > > > > > > >
> > > > > > > > cout <<"entrez une ip de debut au format a.b.c.d\n";
> > > > > > > > cin >> ip;
> > > > > > > > cout <<"cette ip est une chaine de caractères de longeur " ;
> > > > > > > > longueur = strlen (ip);//fonction permettant de retourner la longeur de la chaine de caractere!
> > > > > > > >
> > > > > > > > cout << longueur<<endl;//ensuite on l'affiche!
> > > > > > > > cout <<"entrez une ip de fin au format a.b.c.d\n";
> > > > > > > > cin>>ipfin;
> > > > > > > >
> > > > > > > > cout <<"cette ip est une chaine de caractères de longeur " ;
> > > > > > > > longueurfin = strlen (ipfin);//fonction permettant de retourner la longeur de la chaine de caractere!
> > > > > > > > cout << longueurfin<<endl;//ensuite on l'affiche!
> > > > > > > >
> > > > > > > >
> > > > > > > > for (n=0;n<longueur;n++)
> > > > > > > > {temp=ip[n];
> > > > > > > > cout<<"extraction caractere" <<n<<":"<<temp<<endl;
> > > > > > > > if (temp == (char)48)
> > > > > > > > {cout <<"le programme reconnait la valeur 0 dans temp\n";
> > > > > > > > switch (i)
> > > > > > > > {case 0:ip1=(ip1*10)+0;
> > > > > > > > break;
> > > > > > > > case 1:ip2=(ip2*10)+0;
> > > > > > > > break;
> > > > > > > > case 2:ip3=(ip3*10)+0;
> > > > > > > > break;
> > > > > > > > case 3:ip4=(ip4*10)+0;
> > > > > > > > break;
> > > > > > > > }
> > > > > > > > }
> > > > > > > > else if (temp == (char)49)
> > > > > > > > {cout <<"le programme reconait la valeur 1 dans temp \n";
> > > > > > > > switch (i)
> > > > > > > > {case 0:ip1=(ip1*10)+1;
> > > > > > > > break;
> > > > > > > > case 1:ip2=(ip2*10)+1;
> > > > > > > > break;
> > > > > > > > case 2:ip3=(ip3*10)+1;
> > > > > > > > break;
> > > > > > > > case 3:ip4=(ip4*10)+1;
> > > > > > > > break;
> > > > > > > > }
> > > > > > > > }
> > > > > > > > else if (temp == (char)50)
> > > > > > > > {cout <<"le programme reconait la valeur 2 dans temp \n";
> > > > > > > > switch (i)
> > > > > > > > {case 0:ip1=(ip1*10)+2;
> > > > > > > > break;
> > > > > > > > case 1:ip2=(ip2*10)+2;
> > > > > > > > break;
> > > > > > > > case 2:ip3=(ip3*10)+2;
> > > > > > > > break;
> > > > > > > > case 3:ip4=(ip4*10)+2;
> > > > > > > > break;
> > > > > > > > }
> > > > > > > > }
> > > > > > > > else if (temp == (char)51)
> > > > > > > > {cout <<"le programme reconait la valeur 3 dans temp \n";
> > > > > > > > switch (i)
> > > > > > > > {case 0:ip1=(ip1*10)+3;
> > > > > > > > break;
> > > > > > > > case 1:ip2=(ip2*10)+3;
> > > > > > > > break;
> > > > > > > > case 2:ip3=(ip3*10)+3;
> > > > > > > > break;
> > > > > > > > case 3:ip4=(ip4*10)+3;
> > > > > > > > break;
> > > > > > > > }
> > > > > > > > }
> > > > > > > > else if (temp == (char)52)
> > > > > > > > {cout <<"le programme reconait la valeur 4 dans temp \n";
> > > > > > > > switch (i)
> > > > > > > > {case 0:ip1=(ip1*10)+4;
> > > > > > > > break;
> > > > > > > > case 1:ip2=(ip2*10)+4;
> > > > > > > > break;
> > > > > > > > case 2:ip3=(ip3*10)+4;
> > > > > > > > break;
> > > > > > > > case 3:ip4=(ip4*10)+4;
> > > > > > > > break;
> > > > > > > > }
> > > > > > > > }
> > > > > > > > else if (temp == (char)53)
> > > > > > > > {cout <<"le programme reconait la valeur 5 dans temp \n";
> > > > > > > > switch (i)
> > > > > > > > {case 0:ip1=(ip1*10)+5;
> > > > > > > > break;
> > > > > > > > case 1:ip2=(ip2*10)+5;
> > > > > > > > break;
> > > > > > > > case 2:ip3=(ip3*10)+5;
> > > > > > > > break;
> > > > > > > > case 3:ip4=(ip4*10)+5;
> > > > > > > > break;
> > > > > > > > }
> > > > > > > > }
> > > > > > > > else if (temp == (char)54)
> > > > > > > > {cout <<"le programme reconait la valeur 6 dans temp \n";
> > > > > > > > switch (i)
> > > > > > > > {case 0:ip1=(ip1*10)+6;
> > > > > > > > break;
> > > > > > > > case 1:ip2=(ip2*10)+6;
> > > > > > > > break;
> > > > > > > > case 2:ip3=(ip3*10)+6;
> > > > > > > > break;
> > > > > > > > case 3:ip4=(ip4*10)+6;
> > > > > > > > break;
> > > > > > > > }
> > > > > > > > }
> > > > > > > > else if (temp == (char)55)
> > > > > > > > {cout <<"le programme reconait la valeur 7 dans temp \n";
> > > > > > > > switch (i)
> > > > > > > > {case 0:ip1=(ip1*10)+7;
> > > > > > > > break;
> > > > > > > > case 1:ip2=(ip2*10)+7;
> > > > > > > > break;
> > > > > > > > case 2:ip3=(ip3*10)+7;
> > > > > > > > break;
> > > > > > > > case 3:ip4=(ip4*10)+7;
> > > > > > > > break;
> > > > > > > > }
> > > > > > > > }
> > > > > > > > else if (temp == (char)56)
> > > > > > > > {cout <<"le programme reconait la valeur 8 dans temp \n";
> > > > > > > > switch (i)
> > > > > > > > {case 0:ip1=(ip1*10)+8;
> > > > > > > > break;
> > > > > > > > case 1:ip2=(ip2*10)+8;
> > > > > > > > break;
> > > > > > > > case 2:ip3=(ip3*10)+8;
> > > > > > > > break;
> > > > > > > > case 3:ip4=(ip4*10)+8;
> > > > > > > > break;
> > > > > > > > }
> > > > > > > > }
> > > > > > > > else if (temp == (char)57)
> > > > > > > > {cout <<"le programme reconait la valeur 9 dans temp \n";
> > > > > > > > switch (i)
> > > > > > > > {case 0:ip1=(ip1*10)+9;
> > > > > > > > break;
> > > > > > > > case 1:ip2=(ip2*10)+9;
> > > > > > > > break;
> > > > > > > > case 2:ip3=(ip3*10)+9;
> > > > > > > > break;
> > > > > > > > case 3:ip4=(ip4*10)+9;
> > > > > > > > break;
> > > > > > > > }
> > > > > > > > }
> > > > > > > > else if (temp == (char)46)
> > > > > > > > {cout <<"le programme reconait la valeur . dans temp \n";
> > > > > > > > i++;
> > > > > > > > }
> > > > > > > > else if (temp == (char)42)
> > > > > > > > cout <<"le programme reconait la valeur * dans temp \n";
> > > > > > > >
> > > > > > > > //test des caracteres,est-ce que c un . ou n'importe quel chiffre?
> > > > > > > > //si oui on fait des operations avec
> > > > > > > >
> > > > > > > >
> > > > > > > > }
> > > > > > > >
> > > > > > > > cout<<endl;
> > > > > > > >
> > > > > > > > cout <<endl;
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > for (n1=0;n1<longueurfin;n1++)
> > > > > > > > {temp1=ipfin[n1];
> > > > > > > > cout<<"extraction caractere" <<n1<<":"<<temp1<<endl;
> > > > > > > > if (temp1 == (char)48)
> > > > > > > > {cout <<"le programme reconnait la valeur 0 dans temp\n";
> > > > > > > > switch (j)
> > > > > > > > {case 0:ip10=(ip10*10)+0;
> > > > > > > > break;
> > > > > > > > case 1:ip20=(ip20*10)+0;
> > > > > > > > break;
> > > > > > > > case 2:ip30=(ip30*10)+0;
> > > > > > > > break;
> > > > > > > > case 3:ip40=(ip40*10)+0;
> > > > > > > > break;
> > > > > > > > }
> > > > > > > > }
> > > > > > > > else if (temp1 == (char)49)
> > > > > > > > {cout <<"le programme reconait la valeur 1 dans temp \n";
> > > > > > > > switch (j)
> > > > > > > > {case 0:ip10=(ip10*10)+1;
> > > > > > > > break;
> > > > > > > > case 1:ip20=(ip20*10)+1;
> > > > > > > > break;
> > > > > > > > case 2:ip30=(ip30*10)+1;
> > > > > > > > break;
> > > > > > > > case 3:ip40=(ip40*10)+1;
> > > > > > > > break;
> > > > > > > > }
> > > > > > > > }
> > > > > > > > else if (temp1 == (char)50)
> > > > > > > > {cout <<"le programme reconait la valeur 2 dans temp \n";
> > > > > > > > switch (j)
> > > > > > > > {case 0:ip10=(ip10*10)+2;
> > > > > > > > break;
> > > > > > > > case 1:ip20=(ip20*10)+2;
> > > > > > > > break;
> > > > > > > > case 2:ip30=(ip30*10)+2;
> > > > > > > > break;
> > > > > > > > case 3:ip40=(ip40*10)+2;
> > > > > > > > break;
> > > > > > > > }
> > > > > > > > }
> > > > > > > > else if (temp1 == (char)51)
> > > > > > > > {cout <<"le programme reconait la valeur 3 dans temp \n";
> > > > > > > > switch (j)
> > > > > > > > {case 0:ip10=(ip10*10)+3;
> > > > > > > > break;
> > > > > > > > case 1:ip20=(ip20*10)+3;
> > > > > > > > break;
> > > > > > > > case 2:ip30=(ip30*10)+3;
> > > > > > > > break;
> > > > > > > > case 3:ip40=(ip40*10)+3;
> > > > > > > > break;
> > > > > > > > }
> > > > > > > > }
> > > > > > > > else if (temp1 == (char)52)
> > > > > > > > {cout <<"le programme reconait la valeur 4 dans temp \n";
> > > > > > > > switch (j)
> > > > > > > > {case 0:ip10=(ip10*10)+4;
> > > > > > > > break;
> > > > > > > > case 1:ip20=(ip20*10)+4;
> > > > > > > > break;
> > > > > > > > case 2:ip30=(ip30*10)+4;
> > > > > > > > break;
> > > > > > > > case 3:ip40=(ip40*10)+4;
> > > > > > > > break;
> > > > > > > > }
> > > > > > > > }
> > > > > > > > else if (temp1 == (char)53)
> > > > > > > > {cout <<"le programme reconait la valeur 5 dans temp \n";
> > > > > > > > switch (j)
> > > > > > > > {case 0:ip10=(ip10*10)+5;
> > > > > > > > break;
> > > > > > > > case 1:ip20=(ip20*10)+5;
> > > > > > > > break;
> > > > > > > > case 2:ip30=(ip30*10)+5;
> > > > > > > > break;
> > > > > > > > case 3:ip40=(ip40*10)+5;
> > > > > > > > break;
> > > > > > > > }
> > > > > > > > }
> > > > > > > > else if (temp1 == (char)54)
> > > > > > > > {cout <<"le programme reconait la valeur 6 dans temp \n";
> > > > > > > > switch (j)
> > > > > > > > {case 0:ip10=(ip10*10)+6;
> > > > > > > > break;
> > > > > > > > case 1:ip20=(ip20*10)+6;
> > > > > > > > break;
> > > > > > > > case 2:ip30=(ip30*10)+6;
> > > > > > > > break;
> > > > > > > > case 3:ip40=(ip40*10)+6;
> > > > > > > > break;
> > > > > > > > }
> > > > > > > > }
> > > > > > > > else if (temp1 == (char)55)
> > > > > > > > {cout <<"le programme reconait la valeur 7 dans temp \n";
> > > > > > > > switch (j)
> > > > > > > > {case 0:ip10=(ip10*10)+7;
> > > > > > > > break;
> > > > > > > > case 1:ip20=(ip20*10)+7;
> > > > > > > > break;
> > > > > > > > case 2:ip30=(ip30*10)+7;
> > > > > > > > break;
> > > > > > > > case 3:ip40=(ip40*10)+7;
> > > > > > > > break;
> > > > > > > > }
> > > > > > > > }
> > > > > > > > else if (temp1 == (char)56)
> > > > > > > > {cout <<"le programme reconait la valeur 8 dans temp \n";
> > > > > > > > switch (j)
> > > > > > > > {case 0:ip10=(ip10*10)+8;
> > > > > > > > break;
> > > > > > > > case 1:ip20=(ip20*10)+8;
> > > > > > > > break;
> > > > > > > > case 2:ip30=(ip30*10)+8;
> > > > > > > > break;
> > > > > > > > case 3:ip40=(ip40*10)+8;
> > > > > > > > break;
> > > > > > > > }
> > > > > > > > }
> > > > > > > > else if (temp1 == (char)57)
> > > > > > > > {cout <<"le programme reconait la valeur 9 dans temp \n";
> > > > > > > > switch (j)
> > > > > > > > {case 0:ip10=(ip10*10)+9;
> > > > > > > > break;
> > > > > > > > case 1:ip20=(ip20*10)+9;
> > > > > > > > break;
> > > > > > > > case 2:ip30=(ip30*10)+9;
> > > > > > > > break;
> > > > > > > > case 3:ip40=(ip40*10)+9;
> > > > > > > > break;
> > > > > > > > }
> > > > > > > > }
> > > > > > > > else if (temp1 == (char)46)
> > > > > > > > {cout <<"le programme reconait la valeur . dans temp \n";
> > > > > > > > j++;
> > > > > > > > }
> > > > > > > > else if (temp1 == (char)42)
> > > > > > > > cout <<"le programme reconait la valeur * dans temp \n";
> > > > > > > >
> > > > > > > > //test des caracteres,est-ce que c un . ou n'importe quel chiffre?
> > > > > > > > //si oui on fait des operations avec
> > > > > > > >
> > > > > > > >
> > > > > > > > }
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > //ensuite on affiche les valeurs
> > > > > > > > cout <<"voici les 4 chiffres de l'ip de debut:\n"<<
> > > > > > > > ip1<<"\t"<<ip2<<"\t"<<ip3<<"\t"<<ip4<<"\n";
> > > > > > > >
> > > > > > > >
> > > > > > > > //ensuite on affiche les valeurs
> > > > > > > > cout <<"voici les 4 chiffres de l'ip de fin:\n";
> > > > > > > > cout <<ip10<<"\t"<<ip20<<"\t"<<ip30<<"\t"<<ip40<<"\n";
> > > > > > > >
> > > > > > > > cout<<"traitement de la liste d'ip"<<endl;
> > > > > > > >
> > > > > > > >
> > > > > > > > do
> > > > > > > > {
> > > > > > > > ip4++;
> > > > > > > > if (ip3>254 && ip4>255)
> > > > > > > > {ip3=0;
> > > > > > > > ip2++;
> > > > > > > >
> > > > > > > > }
> > > > > > > > if (ip2>255)
> > > > > > > > {
> > > > > > > > ip1++;
> > > > > > > > ip2=0;
> > > > > > > > }
> > > > > > > >
> > > > > > > > if (ip4>255)
> > > > > > > > {
> > > > > > > >
> > > > > > > > ip4=0;
> > > > > > > > ++ip3;
> > > > > > > > if (ip3>255 && ip4>255)
> > > > > > > > {ip3=0;}
> > > > > > > > }
> > > > > > > >
> > > > > > > > cout<<ip1<<"\t"<<ip2<<"\t"<<ip3<<"\t"<<ip4<<"\n";
> > > > > > > >
> > > > > > > > }
> > > > > > > > while(ip4<ip40 || ip3<ip30 ||ip2<ip20||ip1<ip10);
> > > > > > > >
> > > > > > > >
> > > > > > > > cout<<"fin du progz ;)\n";
> > > > > > > >
> > > > > > > >
> > > > > > > > return 0;
> > > > > > > > }
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>
samedi 4 septembre 2004 à 16:11:39 | Re : tite aide svp!!

KeViNprat

bon voila jai cree un dialog de autjoin mais jai un petit problemme pour la fain je C pas comment on fait pour le
on 1:conect:if { join %chan1 }
le dialog C

dialog autojoin {
title Auto Joindre Un Salon
size -1 -1 240 130
box "Noter Les Salon A AutoJoindre",4, 5 10 290 95
button "Salon1",6, 15 30 100 20
button "Salon2",7, 115 30 100 20
button "Salon3",8, 15 50 100 20
button "Salon4",9, 115 50 100 20
button "Salon5",10, 15 70 100 20
button "Salon6",11, 115 70 100 20
button "Enregistrer",100, 30 110 60 20, flat ok
button "Annuler",101, 115 110 50 20,cancel
}
on *:dialog:autojoin:sclick:6: { set %chan1 $$?"Salon 1 Avec Le #" }
on *:dialog:autojoin:sclick:7: { set %chan2 $$?"Salon 2 Avec Le #" }
on *:dialog:autojoin:sclick:8: { set %chan3 $$?"Salon 3 Avec Le #" }
on *:dialog:autojoin:sclick:9: { set %chan4 $$?"Salon 4 Avec Le #" }
on *:dialog:autojoin:sclick:10: { set %chan5 $$?"Salon 5 Avec Le #" }
on *:dialog:autojoin:sclick:11: { set %chan6 $$?"Salon 6 Avec Le #" }
}

voila merci de votre aide ;)


Cette discussion est classée dans : aide, ip, ip2, ip3, ip4


Répondre à ce message

Sujets en rapport avec ce message

aide sur serveur tcp/ip [ par juju14 ] Pour mon projet d'info je dois créer une application pour un serveur TCP/IP en c++ qui me permet de dialoguer avec plusieurs client.Est ce que qqun po Comment Imprimer en paysage ?? [ par chanandler ] Bonjour !! J'aimerais de l'aide pour pouvoir imprimer en mode paysage en appuyant sur un bouton via une IHM. Je ne veux  pas avoir d'apercu avant d' [CRC]Aide et explications [ par pirana ] Bonsoir, J'essaye de comprendre et surtout d'écrire en C un code me permettant de calculer un CRC. J'ai fait des recherches sur le site, mais rien ne Winsock Tcp/ip Vitesse [ par Envision2 ] Bonjour, avec mon programme en tcp/ip je veux controler le débit d'envoie d'un fichier avec ceci: while(OctetLu == 1024 && ret != 0 && ret != SOCKET_E Linux Reseaux : variables "s ecrasant" en bossant sur les Headers IP [ par cast ] Salut tout le monde. Je travaille sur un projet genre sniffer avec libpcap. Quand je veut afficher les addresses IP sniffer y as pas de probleme, mais [c++]pb parametres [ par devoX ] bonsoir a tous,j'aurais besoind d'une petite aide concernant les parametres a passer a 2 fonction que j'utilise dans un code...je vous explique :j'ai Obtenir IP avec email [ par goutbouyo ] Salut, J'ai fait un chat multiclient pour windows. Le problème c'est qu'il faut que chaque client rentre l'adresse IP de la personne avec qui il veut gethostbyname??? C++ [ par typhoun ] Salut,   Je dois utiliser une adresse IP pour me connecté à un serveur et pour cela j'utilise la fonction struct hostent* FAR gethostbyname(const char [C++] Probleme avec la commande system [ par Braho ] Bonjour, Je suis en train de faire une fonction qui permet de changer de ligne sur un routeur. J'ai à ma disopsition un .bat et je voulais utiliser l interroger un routeur en C [ par jfs ] Bonjour à tous, je dois réaliser en C un progr dont voici le détail : je mets une adresse ip, le progr se connecte au routeur et donne la porte sur la


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,874 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales