Boucle en java

Résolu/Fermé
Utilisateur anonyme - 11 avril 2006 à 16:10
younes1719 Messages postés 3 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 1 janvier 2009 - 1 janv. 2009 à 21:52
j'ai deux plages d'adresses IP j'arrive pas a parcourir toutes le adresses possibles entre les deux plages .les 4 segment de l'adresse de depart et darrivée sont dans des variables de type int.
est ce que quelcun pourrait m'aider a faire cette boucle.Merci
A voir également:

11 réponses

maily Messages postés 7556 Date d'inscription lundi 26 juin 2000 Statut Contributeur Dernière intervention 23 juin 2023 453
11 avril 2006 à 16:32
Tout d'abord bonjour!

Peux tu expliquer ton problème plus clairement?
Je n'ai pas bien compris... Un exemple aiderait beaucoup!
As tu déjà du code d'écrit? Pourrais tu le mettre pour qu'on le corrige?

0
Utilisateur anonyme
11 avril 2006 à 17:16
bon , j'ai deux zonnes ou on peut saisir deux adresses IP:
exemple:192.168.0.1 -----> 193.55.20.11

je vais extraire toutes les adresses IP de cette plage d'adresse.Comme j'ai deja dit j'ai en tout 8 variables de type int:
x1=192
x2=168
x3=0
x4=1

x5=193
x6=55
x7=20
x8=11

Comment les avoirs ces adresses ?,
pour comprendre le code je fais un system.out.println ( ) de chaque adresse.
Merci encore
0
maily Messages postés 7556 Date d'inscription lundi 26 juin 2000 Statut Contributeur Dernière intervention 23 juin 2023 453
11 avril 2006 à 17:23
Il faut faire 4 boucles qui parcourent chaque plage d'entier jusqu'à 255 et afficher les adresses au fur et à mesure...

As tu déjà commencé ton algorithme??
0
Utilisateur anonyme
11 avril 2006 à 17:33
oui me j'arive pas a continuer ,je sais pas ,je suis planté la !!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
maily Messages postés 7556 Date d'inscription lundi 26 juin 2000 Statut Contributeur Dernière intervention 23 juin 2023 453
11 avril 2006 à 17:34
mets moi ce que tu as fait déjà, je pourrais t'aider à débloquer le problème...
0
Utilisateur anonyme
11 avril 2006 à 17:51
voia ce que j'ai fait jusqu'a maintenant ; ca traite les deux dernier champs seulement , c pas complet :
if(x1==x5 && x2==x6 && x3==x7 && x4==x8)
{
System.out.println(""+x1+"."+x2+"."+x3+"."+x4);
}
else
if(x1==x5 && x2==x6 && x3==x7)
{
for(int i4=x4;i4<=x8;i4++)
{
System.out.println(""+x1+"."+x2+"."+x3+"."+i4);
}
}
else
if(x1==x5 && x2==x6)
{
if(x7==(x3+1))
{
for(int i4=x4;i4<=254;i4++)
{
System.out.println(""+x1+"."+x2+"."+x3+"."+i4);
}

for(int i3=1;i3<=x8;i3++)
{
System.out.println(""+x1+"."+x2+"."+x7+"."+i3);
}
}
else
{

for(int i4=x4;i4<=254;i4++)
{
System.out.println(""+x1+"."+x2+"."+x3+"."+i4);
}
////////////////
for(int i4=x3+1;i4<x7;i4++)
{
for(int i5=1;i5<=254;i5++)
{
System.out.println(""+x1+"."+x2+"."+i4+"."+i5);
}
}
////////////////
for(int i3=1;i3<=x8;i3++)
{
System.out.println(""+x1+"."+x2+"."+x7+"."+i3);
}

}
}
else
if(x1==x5)
{

}
0
maily Messages postés 7556 Date d'inscription lundi 26 juin 2000 Statut Contributeur Dernière intervention 23 juin 2023 453
11 avril 2006 à 18:00
Personnellement, pour cette partie:
 if(x1==x5 && x2==x6)
{
if(x7==(x3+1))
{
for(int i4=x4;i4<=254;i4++)
{
System.out.println(""+x1+"."+x2+"."+x3+"."+i4);
}

for(int i3=1;i3<=x8;i3++)
{
System.out.println(""+x1+"."+x2+"."+x7+"."+i3);
}
}
else
{

for(int i4=x4;i4<=254;i4++)
{
System.out.println(""+x1+"."+x2+"."+x3+"."+i4);
}
////////////////
for(int i4=x3+1;i4<x7;i4++)
{
for(int i5=1;i5<=254;i5++)
{
System.out.println(""+x1+"."+x2+"."+i4+"."+i5);
}
}
////////////////
for(int i3=1;i3<=x8;i3++)
{
System.out.println(""+x1+"."+x2+"."+x7+"."+i3);
}

}
} 



je ferais ça:
if(x1==x5 && x2==x6)
{
        int inter = x4;
    	for(int i3=x3;i3<=x8;i3++){
    		for(int i4=inter;i4<=254;i4++){
                       if(i3 == x7 && i4 == x8){
                             break;
                       }
        	       System.out.println(""+x1+"."+x2+"."+i3+"."+i4);
        	}
    		inter = 0;
    	}
}
0
Utilisateur anonyme
11 avril 2006 à 18:29
vous avez mis cette condition

(x1==x5 && x2==x6)
donc vous n'avez pas traité tous les cas .Ca je l'ai deja fait.Mon cide marchait deja .
Mais si on veut tester sur toutes les variables .Comment faire?
Encore Merci.
0
maily Messages postés 7556 Date d'inscription lundi 26 juin 2000 Statut Contributeur Dernière intervention 23 juin 2023 453
12 avril 2006 à 09:58
En fait, je remplaçais juste une partie de ton code...
J'ai pas tout remis exprès, pour que ça reste lisible!

ma façon de faire pour ce cas là devrait t'aider à faire la suite...
0
A tu deja entendu parler des masques de sous réseau ??? un truc du genre 255.255.255.0 ???

toi tu veut parcourir une ip avec un masque type 0.0.0.0 soir presque la quasi totalité des ip existantes dans le monde ! tu sera confronté a un problème de temps et d'exécution, et en plus je peut garantir le non fonctionnement de ce script malgré un acharnement total parce que le masque de sous réseau le plus bas reste 255.0.0.0 pour les réseaux locaux classiques, il faut forcément qu'un pc puisse broacaster sur une ip, et si il n'existe pas de masque de sous réseau, les pc perdent la boule, c'est ton cas pour passer d'une ip a une autre, je m'explique, si deja tu veut que tes postes communiquent : il faut au moins configurer tes pc comme suit :

PC 1 => 192.168.0.1 - 0.0.0.0

PC 2 => 193.50.20.11 - 0.0.0.0

ceci cause une incompatibilité du au masque de sous réseau de 0.0.0.0
voici donc une configuration minimale :
PC 1 => 192.168.0.1 - 255.0.0.0

PC 2 => 192.50.20.11 - 255.0.0.0
dans ce cas, les postes pourront se pinger et communiquer entre eux.
"uniquement dans le cas d'un réseau de type LAN, le MAN et WAN, c'est encore différent"


(perso de mon coté je ne vois pas pourquoi tu utilise des ip ainsi. un simple masque de sous réseau en 255.255.0.0 aurait suffit... a moins que tu ai plus que 65000 et quelques postes sur ton réseau car 255*255 = 255² possibilités de pC en réseau ^^)
0
younes1719 Messages postés 3 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 1 janvier 2009
1 janv. 2009 à 21:52
slt a tous je veux une aide svp sur la boucle do-while merci de me reponde bonne annee
0