Accueil > Forum > > > > tite aide svp!!
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
|
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
|
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
|
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
|
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
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|