salut a tous,voila j'explique,g un prog qui me liste tout
les ip des adresses
de classe a,b,c.
par exemple,je tape 85.22.55. adresse de classe c,et il
me sort tout les ip
du reseau 85.22.55. (de 0 a 255).
je voudrais afficher seulement 30 ip mais qui ne suivent
pas85.22.55.(1,5 ,
79,101, 103,119.....),quel boucle je dois utiliser pour
faire cela vu que ce
n'est pas des chiffres qui se suivent?
merci de repondre
salut a tous,voila j'explique,g un prog qui me liste tout
les ip des adresses
de classe a,b,c.
par exemple,je tape 85.22.55. adresse de classe c,et il
me sort tout les ip
du reseau 85.22.55. (de 0 a 255).
je voudrais afficher seulement 30 ip mais qui ne suivent
pas85.22.55.(1,5 ,
79,101, 103,119.....),quel boucle je dois utiliser pour
faire cela vu que ce
n'est pas des chiffres qui se suivent?
merci de repondre
salut a tous,voila j'explique,g un prog qui me liste tout
les ip des adresses
de classe a,b,c.
par exemple,je tape 85.22.55. adresse de classe c,et il
me sort tout les ip
du reseau 85.22.55. (de 0 a 255).
je voudrais afficher seulement 30 ip mais qui ne suivent
pas85.22.55.(1,5 ,
79,101, 103,119.....),quel boucle je dois utiliser pour
faire cela vu que ce
n'est pas des chiffres qui se suivent?
merci de repondre
Salut,
Ah, c'est quoi les adresses IP de classe ???
Je ne comprends pas, tu veux afficher des adresse IP qui ne se suivent
pas à l'aide d'une boucle, cependant la boucle elle ne sait pas ce que tu
affiches, donc un traitement dans la boucle serait bienvenu...
Mais bon, je crois que je n'ai rein compris, je suppute :o)
-------
"squat541" a écrit dans le message de
news:salut a tous,voila j'explique,g un prog qui me liste tout les ip des
adresses
de classe a,b,c.
par exemple,je tape 85.22.55. adresse de classe c,et il me sort tout les
ip
du reseau 85.22.55. (de 0 a 255).
je voudrais afficher seulement 30 ip mais qui ne suivent pas85.22.55.(1,5
,
79,101, 103,119.....),quel boucle je dois utiliser pour faire cela vu que
ce
n'est pas des chiffres qui se suivent?
merci de repondre
Salut,
Ah, c'est quoi les adresses IP de classe ???
Je ne comprends pas, tu veux afficher des adresse IP qui ne se suivent
pas à l'aide d'une boucle, cependant la boucle elle ne sait pas ce que tu
affiches, donc un traitement dans la boucle serait bienvenu...
Mais bon, je crois que je n'ai rein compris, je suppute :o)
-------
"squat541" <squat541@discussions.microsoft.com> a écrit dans le message de
news: EDEBDB18-FF41-40BD-ADD6-95807F914450@microsoft.com...
salut a tous,voila j'explique,g un prog qui me liste tout les ip des
adresses
de classe a,b,c.
par exemple,je tape 85.22.55. adresse de classe c,et il me sort tout les
ip
du reseau 85.22.55. (de 0 a 255).
je voudrais afficher seulement 30 ip mais qui ne suivent pas85.22.55.(1,5
,
79,101, 103,119.....),quel boucle je dois utiliser pour faire cela vu que
ce
n'est pas des chiffres qui se suivent?
merci de repondre
Salut,
Ah, c'est quoi les adresses IP de classe ???
Je ne comprends pas, tu veux afficher des adresse IP qui ne se suivent
pas à l'aide d'une boucle, cependant la boucle elle ne sait pas ce que tu
affiches, donc un traitement dans la boucle serait bienvenu...
Mais bon, je crois que je n'ai rein compris, je suppute :o)
-------
"squat541" a écrit dans le message de
news:salut a tous,voila j'explique,g un prog qui me liste tout les ip des
adresses
de classe a,b,c.
par exemple,je tape 85.22.55. adresse de classe c,et il me sort tout les
ip
du reseau 85.22.55. (de 0 a 255).
je voudrais afficher seulement 30 ip mais qui ne suivent pas85.22.55.(1,5
,
79,101, 103,119.....),quel boucle je dois utiliser pour faire cela vu que
ce
n'est pas des chiffres qui se suivent?
merci de repondre
salut a tous,voila j'explique,g un prog qui me liste tout les ip des
de classe a,b,c.
par exemple,je tape 85.22.55. adresse de classe c,et il me sort tout les
du reseau 85.22.55. (de 0 a 255).
je voudrais afficher seulement 30 ip mais qui ne suivent pas85.22.55.(1,5
79,101, 103,119.....),quel boucle je dois utiliser pour faire cela vu que
n'est pas des chiffres qui se suivent?
merci de repondre
salut a tous,voila j'explique,g un prog qui me liste tout les ip des
de classe a,b,c.
par exemple,je tape 85.22.55. adresse de classe c,et il me sort tout les
du reseau 85.22.55. (de 0 a 255).
je voudrais afficher seulement 30 ip mais qui ne suivent pas85.22.55.(1,5
79,101, 103,119.....),quel boucle je dois utiliser pour faire cela vu que
n'est pas des chiffres qui se suivent?
merci de repondre
salut a tous,voila j'explique,g un prog qui me liste tout les ip des
de classe a,b,c.
par exemple,je tape 85.22.55. adresse de classe c,et il me sort tout les
du reseau 85.22.55. (de 0 a 255).
je voudrais afficher seulement 30 ip mais qui ne suivent pas85.22.55.(1,5
79,101, 103,119.....),quel boucle je dois utiliser pour faire cela vu que
n'est pas des chiffres qui se suivent?
merci de repondre
Salut,
Ah, c'est quoi les adresses IP de classe ???
Je ne comprends pas, tu veux afficher des adresse IP qui
ne se suivent pas à l'aide d'une boucle, cependant la boucle
elle ne sait pas ce que tu affiches, donc un traitement dans
la boucle serait bienvenu...
Mais bon, je crois que je n'ai rein compris, je suppute
:o)
-------
"squat541" a écrit dans
le message de news:
> salut a tous,voila j'explique,g un prog qui me liste tout
> les ip des adresses
> de classe a,b,c.
> par exemple,je tape 85.22.55. adresse de classe c,et il
> me sort tout les ip
> du reseau 85.22.55. (de 0 a 255).
> je voudrais afficher seulement 30 ip mais qui ne suivent
> pas85.22.55.(1,5 ,
> 79,101, 103,119.....),quel boucle je dois utiliser pour
> faire cela vu que ce
> n'est pas des chiffres qui se suivent?
> merci de repondre
Salut,
Ah, c'est quoi les adresses IP de classe ???
Je ne comprends pas, tu veux afficher des adresse IP qui
ne se suivent pas à l'aide d'une boucle, cependant la boucle
elle ne sait pas ce que tu affiches, donc un traitement dans
la boucle serait bienvenu...
Mais bon, je crois que je n'ai rein compris, je suppute
:o)
-------
"squat541" <squat541@discussions.microsoft.com> a écrit dans
le message de news:
EDEBDB18-FF41-40BD-ADD6-95807F914450@microsoft.com...
> salut a tous,voila j'explique,g un prog qui me liste tout
> les ip des adresses
> de classe a,b,c.
> par exemple,je tape 85.22.55. adresse de classe c,et il
> me sort tout les ip
> du reseau 85.22.55. (de 0 a 255).
> je voudrais afficher seulement 30 ip mais qui ne suivent
> pas85.22.55.(1,5 ,
> 79,101, 103,119.....),quel boucle je dois utiliser pour
> faire cela vu que ce
> n'est pas des chiffres qui se suivent?
> merci de repondre
Salut,
Ah, c'est quoi les adresses IP de classe ???
Je ne comprends pas, tu veux afficher des adresse IP qui
ne se suivent pas à l'aide d'une boucle, cependant la boucle
elle ne sait pas ce que tu affiches, donc un traitement dans
la boucle serait bienvenu...
Mais bon, je crois que je n'ai rein compris, je suppute
:o)
-------
"squat541" a écrit dans
le message de news:
> salut a tous,voila j'explique,g un prog qui me liste tout
> les ip des adresses
> de classe a,b,c.
> par exemple,je tape 85.22.55. adresse de classe c,et il
> me sort tout les ip
> du reseau 85.22.55. (de 0 a 255).
> je voudrais afficher seulement 30 ip mais qui ne suivent
> pas85.22.55.(1,5 ,
> 79,101, 103,119.....),quel boucle je dois utiliser pour
> faire cela vu que ce
> n'est pas des chiffres qui se suivent?
> merci de repondre
Salut ;O)
Pour ton information ,vois ici concernant la
classification des adresses IP:
http://www.commentcamarche.net/internet/ip.php3
On ne peut pas tout savoir ;O) Qu'est ce qu'on
s'embêterait...
Guy
"LE TROLL" <le a écrit dans le message de
news:Salut,
Ah, c'est quoi les adresses IP de classe ???
Je ne comprends pas, tu veux afficher des adresse IP
qui
ne se suivent pas à l'aide d'une boucle, cependant la
boucle
elle ne sait pas ce que tu affiches, donc un traitement
dans
la boucle serait bienvenu...
Mais bon, je crois que je n'ai rein compris, je
suppute
:o)
-------
"squat541" a écrit
dans
le message de news:
> salut a tous,voila j'explique,g un prog qui me liste
> tout
> les ip des adresses
> de classe a,b,c.
> par exemple,je tape 85.22.55. adresse de classe c,et
> il
> me sort tout les ip
> du reseau 85.22.55. (de 0 a 255).
> je voudrais afficher seulement 30 ip mais qui ne
> suivent
> pas85.22.55.(1,5 ,
> 79,101, 103,119.....),quel boucle je dois utiliser pour
> faire cela vu que ce
> n'est pas des chiffres qui se suivent?
> merci de repondre
Salut ;O)
Pour ton information ,vois ici concernant la
classification des adresses IP:
http://www.commentcamarche.net/internet/ip.php3
On ne peut pas tout savoir ;O) Qu'est ce qu'on
s'embêterait...
Guy
"LE TROLL" <le troll@paris.fr> a écrit dans le message de
news:O8WIHU9KFHA.4032@TK2MSFTNGP14.phx.gbl...
Salut,
Ah, c'est quoi les adresses IP de classe ???
Je ne comprends pas, tu veux afficher des adresse IP
qui
ne se suivent pas à l'aide d'une boucle, cependant la
boucle
elle ne sait pas ce que tu affiches, donc un traitement
dans
la boucle serait bienvenu...
Mais bon, je crois que je n'ai rein compris, je
suppute
:o)
-------
"squat541" <squat541@discussions.microsoft.com> a écrit
dans
le message de news:
EDEBDB18-FF41-40BD-ADD6-95807F914450@microsoft.com...
> salut a tous,voila j'explique,g un prog qui me liste
> tout
> les ip des adresses
> de classe a,b,c.
> par exemple,je tape 85.22.55. adresse de classe c,et
> il
> me sort tout les ip
> du reseau 85.22.55. (de 0 a 255).
> je voudrais afficher seulement 30 ip mais qui ne
> suivent
> pas85.22.55.(1,5 ,
> 79,101, 103,119.....),quel boucle je dois utiliser pour
> faire cela vu que ce
> n'est pas des chiffres qui se suivent?
> merci de repondre
Salut ;O)
Pour ton information ,vois ici concernant la
classification des adresses IP:
http://www.commentcamarche.net/internet/ip.php3
On ne peut pas tout savoir ;O) Qu'est ce qu'on
s'embêterait...
Guy
"LE TROLL" <le a écrit dans le message de
news:Salut,
Ah, c'est quoi les adresses IP de classe ???
Je ne comprends pas, tu veux afficher des adresse IP
qui
ne se suivent pas à l'aide d'une boucle, cependant la
boucle
elle ne sait pas ce que tu affiches, donc un traitement
dans
la boucle serait bienvenu...
Mais bon, je crois que je n'ai rein compris, je
suppute
:o)
-------
"squat541" a écrit
dans
le message de news:
> salut a tous,voila j'explique,g un prog qui me liste
> tout
> les ip des adresses
> de classe a,b,c.
> par exemple,je tape 85.22.55. adresse de classe c,et
> il
> me sort tout les ip
> du reseau 85.22.55. (de 0 a 255).
> je voudrais afficher seulement 30 ip mais qui ne
> suivent
> pas85.22.55.(1,5 ,
> 79,101, 103,119.....),quel boucle je dois utiliser pour
> faire cela vu que ce
> n'est pas des chiffres qui se suivent?
> merci de repondre
salut a tous,voila j'explique,g un prog qui me liste tout
les ip des adresses
de classe a,b,c.
par exemple,je tape 85.22.55. adresse de classe c,et il
me sort tout les ip
du reseau 85.22.55. (de 0 a 255).
je voudrais afficher seulement 30 ip mais qui ne suivent
pas85.22.55.(1,5 ,
79,101, 103,119.....),quel boucle je dois utiliser pour
faire cela vu que ce
n'est pas des chiffres qui se suivent?
merci de repondre
salut a tous,voila j'explique,g un prog qui me liste tout
les ip des adresses
de classe a,b,c.
par exemple,je tape 85.22.55. adresse de classe c,et il
me sort tout les ip
du reseau 85.22.55. (de 0 a 255).
je voudrais afficher seulement 30 ip mais qui ne suivent
pas85.22.55.(1,5 ,
79,101, 103,119.....),quel boucle je dois utiliser pour
faire cela vu que ce
n'est pas des chiffres qui se suivent?
merci de repondre
salut a tous,voila j'explique,g un prog qui me liste tout
les ip des adresses
de classe a,b,c.
par exemple,je tape 85.22.55. adresse de classe c,et il
me sort tout les ip
du reseau 85.22.55. (de 0 a 255).
je voudrais afficher seulement 30 ip mais qui ne suivent
pas85.22.55.(1,5 ,
79,101, 103,119.....),quel boucle je dois utiliser pour
faire cela vu que ce
n'est pas des chiffres qui se suivent?
merci de repondre
Oh là mes brave:
L'exemple indique pour le 4eme groupe IP (1, 5, 79...), et
il dit "ip mais qui NE se suivent", donc c'est bien
traitement aléatoire qu'il faut mettre dans la boucle, en
vérifiant que l'aléatoire n'a pas causé de mitoyenneté d'IP,
moi y'en a m'essayer à ce jeu:
-----------------------
Sub cree_ip()
Dim i As Long
Dim j As Long
Dim k As Long
Dim ip(256) As Long
Dim ip_ok(30) As Long ' ip retenues
Dim hasard As Long
Dim presente As String
Dim trans As Long
'
For i = 0 To 255 ' choix des ip
ip(i) = Format(i, "000")
Next i
Randomize
hasard = 0
'
For i = 1 To 30
Do While ip(hasard) = 256 ' = déjà choisit
hasard = Int((255 - 0 + 1) * Rnd + 0) ' pseudo
aléatoire
Loop
If hasard > 0 Then ip(hasard - 1) = 256 ' enlève - 1:
interdit mitoyenneté
ip(hasard) = 256 ' ip à ne plus sélectionner
ip_ok(i) = hasard ' ip sélectionnée
If hasard < 255 Then ip(hasard + 1) = 256 ' enlève + 1:
interdit mitoyenneté
Next i
'
For i = 1 To 30 ' tri croissant
For j = 1 To 30
For k = 1 To 30
If j = k Then Exit For
If ip_ok(j) < ip_ok(k) Then
trans = ip_ok(j)
ip_ok(j) = ip_ok(k)
ip_ok(k) = trans
Exit For
End If
Next k
Next j
Next i
'
presente = "" ' présentation
For i = 1 To 30
presente = presente & Format(ip_ok(i), "000") & vbLf
Next i
MsgBox presente, vbInformation
End Sub
-----------------------testé OK
"squat541" a écrit dans
le message de news:
> salut a tous,voila j'explique,g un prog qui me liste tout
> les ip des adresses
> de classe a,b,c.
> par exemple,je tape 85.22.55. adresse de classe c,et il
> me sort tout les ip
> du reseau 85.22.55. (de 0 a 255).
> je voudrais afficher seulement 30 ip mais qui ne suivent
> pas85.22.55.(1,5 ,
> 79,101, 103,119.....),quel boucle je dois utiliser pour
> faire cela vu que ce
> n'est pas des chiffres qui se suivent?
> merci de repondre
Oh là mes brave:
L'exemple indique pour le 4eme groupe IP (1, 5, 79...), et
il dit "ip mais qui NE se suivent", donc c'est bien
traitement aléatoire qu'il faut mettre dans la boucle, en
vérifiant que l'aléatoire n'a pas causé de mitoyenneté d'IP,
moi y'en a m'essayer à ce jeu:
-----------------------
Sub cree_ip()
Dim i As Long
Dim j As Long
Dim k As Long
Dim ip(256) As Long
Dim ip_ok(30) As Long ' ip retenues
Dim hasard As Long
Dim presente As String
Dim trans As Long
'
For i = 0 To 255 ' choix des ip
ip(i) = Format(i, "000")
Next i
Randomize
hasard = 0
'
For i = 1 To 30
Do While ip(hasard) = 256 ' = déjà choisit
hasard = Int((255 - 0 + 1) * Rnd + 0) ' pseudo
aléatoire
Loop
If hasard > 0 Then ip(hasard - 1) = 256 ' enlève - 1:
interdit mitoyenneté
ip(hasard) = 256 ' ip à ne plus sélectionner
ip_ok(i) = hasard ' ip sélectionnée
If hasard < 255 Then ip(hasard + 1) = 256 ' enlève + 1:
interdit mitoyenneté
Next i
'
For i = 1 To 30 ' tri croissant
For j = 1 To 30
For k = 1 To 30
If j = k Then Exit For
If ip_ok(j) < ip_ok(k) Then
trans = ip_ok(j)
ip_ok(j) = ip_ok(k)
ip_ok(k) = trans
Exit For
End If
Next k
Next j
Next i
'
presente = "" ' présentation
For i = 1 To 30
presente = presente & Format(ip_ok(i), "000") & vbLf
Next i
MsgBox presente, vbInformation
End Sub
-----------------------testé OK
"squat541" <squat541@discussions.microsoft.com> a écrit dans
le message de news:
EDEBDB18-FF41-40BD-ADD6-95807F914450@microsoft.com...
> salut a tous,voila j'explique,g un prog qui me liste tout
> les ip des adresses
> de classe a,b,c.
> par exemple,je tape 85.22.55. adresse de classe c,et il
> me sort tout les ip
> du reseau 85.22.55. (de 0 a 255).
> je voudrais afficher seulement 30 ip mais qui ne suivent
> pas85.22.55.(1,5 ,
> 79,101, 103,119.....),quel boucle je dois utiliser pour
> faire cela vu que ce
> n'est pas des chiffres qui se suivent?
> merci de repondre
Oh là mes brave:
L'exemple indique pour le 4eme groupe IP (1, 5, 79...), et
il dit "ip mais qui NE se suivent", donc c'est bien
traitement aléatoire qu'il faut mettre dans la boucle, en
vérifiant que l'aléatoire n'a pas causé de mitoyenneté d'IP,
moi y'en a m'essayer à ce jeu:
-----------------------
Sub cree_ip()
Dim i As Long
Dim j As Long
Dim k As Long
Dim ip(256) As Long
Dim ip_ok(30) As Long ' ip retenues
Dim hasard As Long
Dim presente As String
Dim trans As Long
'
For i = 0 To 255 ' choix des ip
ip(i) = Format(i, "000")
Next i
Randomize
hasard = 0
'
For i = 1 To 30
Do While ip(hasard) = 256 ' = déjà choisit
hasard = Int((255 - 0 + 1) * Rnd + 0) ' pseudo
aléatoire
Loop
If hasard > 0 Then ip(hasard - 1) = 256 ' enlève - 1:
interdit mitoyenneté
ip(hasard) = 256 ' ip à ne plus sélectionner
ip_ok(i) = hasard ' ip sélectionnée
If hasard < 255 Then ip(hasard + 1) = 256 ' enlève + 1:
interdit mitoyenneté
Next i
'
For i = 1 To 30 ' tri croissant
For j = 1 To 30
For k = 1 To 30
If j = k Then Exit For
If ip_ok(j) < ip_ok(k) Then
trans = ip_ok(j)
ip_ok(j) = ip_ok(k)
ip_ok(k) = trans
Exit For
End If
Next k
Next j
Next i
'
presente = "" ' présentation
For i = 1 To 30
presente = presente & Format(ip_ok(i), "000") & vbLf
Next i
MsgBox presente, vbInformation
End Sub
-----------------------testé OK
"squat541" a écrit dans
le message de news:
> salut a tous,voila j'explique,g un prog qui me liste tout
> les ip des adresses
> de classe a,b,c.
> par exemple,je tape 85.22.55. adresse de classe c,et il
> me sort tout les ip
> du reseau 85.22.55. (de 0 a 255).
> je voudrais afficher seulement 30 ip mais qui ne suivent
> pas85.22.55.(1,5 ,
> 79,101, 103,119.....),quel boucle je dois utiliser pour
> faire cela vu que ce
> n'est pas des chiffres qui se suivent?
> merci de repondre
If Option4.Value = True Then
'je tape le premier champ
Adr2Start = 22
Adr2End = 22
Adr3Start = 5
Adr3End = 5
Fin = 254
End If
Loop
Adr3Start = Adr3Start + 1
Je vous remercie tous de vous intéresser à mon cas,c presque ca sauf que
je
veux pouvoir les choisirs et pas aleatoire sinon c une bonne idée.je vous
met
le prog du bouton commande qui vous aidera a me comprendre
Private Sub Command1_Click()
If Command1.Caption = "Analyse" Then
Command1.Caption = "Stopper"
Dim Depart As Integer 'variables utilisées pour la barre
Dim Fin As Integer 'de défilement
Dim Iptest As String
Dim Result As String
Dim Adr1Start As Integer
Dim Adr1End As Integer
Dim Adr2Start As Integer 'variables utilisées pour les
Dim Adr2End As Integer 'adresses Ip
Dim Adr3Start As Integer
Dim Adr3End As Integer
Dim Cpt As Integer 'Utilisée pour définir le dernier champ
'de l'adresse IP
'********************
'* initialistaion *
'********************
ListView1.ListItems.Clear
Depart = 0
If Option1.Value = True Then
Adr2Start = 0
Adr2End = 255
Adr3Start = 0
Adr3End = 255
Fin = 766
End If
If Option2.Value = True Then
Adr2Start = Val(Text4.Text)
Adr2End = Val(Text4.Text)
Adr3Start = 0
Adr3End = 255
Fin = 510
End If
If Option3.Value = True Then
Adr2Start = Val(Text4.Text)
Adr2End = Val(Text4.Text)
Adr3Start = Val(Text5.Text)
Adr3End = Val(Text5.Text
Fin = 254
End If
If Option4.Value = True Then
'je tape le premier champ
Adr2Start = 22
Adr2End = 22
Adr3Start = 5
Adr3End = 5
Fin = 254
End If
ProgressBar1.Visible = True
ProgressBar1.Max = Fin
ProgressBar1.Min = Depart
Do Until Adr2Start > Adr2End
'boucle correspondant au deuxième champs de l'adresse IP
Do Until Adr3Start > Adr3End
'Boucle correspondant au troisième champs de l'adresse IP
'réinitialisation de cpt
Cpt = 1
'Cpt = 100
Do Until Cpt > 254
'boucle correspondant au quetrième champs de l'adresse IP
If Command1.Caption = "Analyse" Then Exit Sub
'Définition de l'adresse IP à tester
Iptest = Text3.Text + "." & Adr2Start & "." & Adr3Start
& "." & Cpt
DoEvents
Result = Echo(Iptest)
With ListView1.ListItems.Add
.Text = Iptest
If Result = "Failure" Then
.SubItems(2) = Result
DoEvents
Enregistrement Iptest, False
Else
'.SubItems(1) = GetHostName(ConvertIp(Iptest))
'Dim test As Double
'test = CDbl(ConvertIp(Iptest))
' On Error Resume Next
'.SubItems(1) > gethostbyaddr(CLng(ConvertIp(Iptest)), 4, AF_INET)
'.SubItems(1) =
gethostbyaddr(ConvertIp(Iptest),
4, AF_INET)
'.SubItems(1) > GetHostName(CLng(ConvertIp(Iptest)))
DoEvents
'.SubItems(1) = HostName(Iptest)
.SubItems(1) = GetHostNameFromIP(.Text)
DoEvents
Enregistrement Iptest, True
End If
End With
Cpt = Cpt + 1
Depart = Depart + 1
ProgressBar1.Value = Depart
Loop
Adr3Start = Adr3Start + 1
Loop
Adr2Start = Adr2Start + 1
Loop
ProgressBar1.Visible = False
Else
ProgressBar1.Visible = False
Command1.Caption = "Analyse"
End If
End Sub
Voila mon prob ce trouve a l'option 4,je cherche a modifier le 3eme champ
en
lui donnant 28 valeur mais que je ne modifie pas ces 28 reseau corresponde
au
reseau d'une entreprise,ce sont des adresses qui ne change pas.
un exemple 85.22.5.(0à255)
85.22.10.(0à255)
85.22.18.(0à255)
:
:
je modifie seulement le troisieme champ je choisie les 28 et ca reste
toujours meme.si j'explique mal dit le moi je detaillerai plus.
"LE TROLL" a écrit :Oh là mes brave:
L'exemple indique pour le 4eme groupe IP (1, 5, 79...), et
il dit "ip mais qui NE se suivent", donc c'est bien
traitement aléatoire qu'il faut mettre dans la boucle, en
vérifiant que l'aléatoire n'a pas causé de mitoyenneté d'IP,
moi y'en a m'essayer à ce jeu:
-----------------------
Sub cree_ip()
Dim i As Long
Dim j As Long
Dim k As Long
Dim ip(256) As Long
Dim ip_ok(30) As Long ' ip retenues
Dim hasard As Long
Dim presente As String
Dim trans As Long
'
For i = 0 To 255 ' choix des ip
ip(i) = Format(i, "000")
Next i
Randomize
hasard = 0
'
For i = 1 To 30
Do While ip(hasard) = 256 ' = déjà choisit
hasard = Int((255 - 0 + 1) * Rnd + 0) ' pseudo
aléatoire
Loop
If hasard > 0 Then ip(hasard - 1) = 256 ' enlève - 1:
interdit mitoyenneté
ip(hasard) = 256 ' ip à ne plus sélectionner
ip_ok(i) = hasard ' ip sélectionnée
If hasard < 255 Then ip(hasard + 1) = 256 ' enlève + 1:
interdit mitoyenneté
Next i
'
For i = 1 To 30 ' tri croissant
For j = 1 To 30
For k = 1 To 30
If j = k Then Exit For
If ip_ok(j) < ip_ok(k) Then
trans = ip_ok(j)
ip_ok(j) = ip_ok(k)
ip_ok(k) = trans
Exit For
End If
Next k
Next j
Next i
'
presente = "" ' présentation
For i = 1 To 30
presente = presente & Format(ip_ok(i), "000") & vbLf
Next i
MsgBox presente, vbInformation
End Sub
-----------------------testé OK
"squat541" a écrit dans
le message de news:
> salut a tous,voila j'explique,g un prog qui me liste tout
> les ip des adresses
> de classe a,b,c.
> par exemple,je tape 85.22.55. adresse de classe c,et il
> me sort tout les ip
> du reseau 85.22.55. (de 0 a 255).
> je voudrais afficher seulement 30 ip mais qui ne suivent
> pas85.22.55.(1,5 ,
> 79,101, 103,119.....),quel boucle je dois utiliser pour
> faire cela vu que ce
> n'est pas des chiffres qui se suivent?
> merci de repondre
If Option4.Value = True Then
'je tape le premier champ
Adr2Start = 22
Adr2End = 22
Adr3Start = 5
Adr3End = 5
Fin = 254
End If
Loop
Adr3Start = Adr3Start + 1
Je vous remercie tous de vous intéresser à mon cas,c presque ca sauf que
je
veux pouvoir les choisirs et pas aleatoire sinon c une bonne idée.je vous
met
le prog du bouton commande qui vous aidera a me comprendre
Private Sub Command1_Click()
If Command1.Caption = "Analyse" Then
Command1.Caption = "Stopper"
Dim Depart As Integer 'variables utilisées pour la barre
Dim Fin As Integer 'de défilement
Dim Iptest As String
Dim Result As String
Dim Adr1Start As Integer
Dim Adr1End As Integer
Dim Adr2Start As Integer 'variables utilisées pour les
Dim Adr2End As Integer 'adresses Ip
Dim Adr3Start As Integer
Dim Adr3End As Integer
Dim Cpt As Integer 'Utilisée pour définir le dernier champ
'de l'adresse IP
'********************
'* initialistaion *
'********************
ListView1.ListItems.Clear
Depart = 0
If Option1.Value = True Then
Adr2Start = 0
Adr2End = 255
Adr3Start = 0
Adr3End = 255
Fin = 766
End If
If Option2.Value = True Then
Adr2Start = Val(Text4.Text)
Adr2End = Val(Text4.Text)
Adr3Start = 0
Adr3End = 255
Fin = 510
End If
If Option3.Value = True Then
Adr2Start = Val(Text4.Text)
Adr2End = Val(Text4.Text)
Adr3Start = Val(Text5.Text)
Adr3End = Val(Text5.Text
Fin = 254
End If
If Option4.Value = True Then
'je tape le premier champ
Adr2Start = 22
Adr2End = 22
Adr3Start = 5
Adr3End = 5
Fin = 254
End If
ProgressBar1.Visible = True
ProgressBar1.Max = Fin
ProgressBar1.Min = Depart
Do Until Adr2Start > Adr2End
'boucle correspondant au deuxième champs de l'adresse IP
Do Until Adr3Start > Adr3End
'Boucle correspondant au troisième champs de l'adresse IP
'réinitialisation de cpt
Cpt = 1
'Cpt = 100
Do Until Cpt > 254
'boucle correspondant au quetrième champs de l'adresse IP
If Command1.Caption = "Analyse" Then Exit Sub
'Définition de l'adresse IP à tester
Iptest = Text3.Text + "." & Adr2Start & "." & Adr3Start
& "." & Cpt
DoEvents
Result = Echo(Iptest)
With ListView1.ListItems.Add
.Text = Iptest
If Result = "Failure" Then
.SubItems(2) = Result
DoEvents
Enregistrement Iptest, False
Else
'.SubItems(1) = GetHostName(ConvertIp(Iptest))
'Dim test As Double
'test = CDbl(ConvertIp(Iptest))
' On Error Resume Next
'.SubItems(1) > gethostbyaddr(CLng(ConvertIp(Iptest)), 4, AF_INET)
'.SubItems(1) =
gethostbyaddr(ConvertIp(Iptest),
4, AF_INET)
'.SubItems(1) > GetHostName(CLng(ConvertIp(Iptest)))
DoEvents
'.SubItems(1) = HostName(Iptest)
.SubItems(1) = GetHostNameFromIP(.Text)
DoEvents
Enregistrement Iptest, True
End If
End With
Cpt = Cpt + 1
Depart = Depart + 1
ProgressBar1.Value = Depart
Loop
Adr3Start = Adr3Start + 1
Loop
Adr2Start = Adr2Start + 1
Loop
ProgressBar1.Visible = False
Else
ProgressBar1.Visible = False
Command1.Caption = "Analyse"
End If
End Sub
Voila mon prob ce trouve a l'option 4,je cherche a modifier le 3eme champ
en
lui donnant 28 valeur mais que je ne modifie pas ces 28 reseau corresponde
au
reseau d'une entreprise,ce sont des adresses qui ne change pas.
un exemple 85.22.5.(0à255)
85.22.10.(0à255)
85.22.18.(0à255)
:
:
je modifie seulement le troisieme champ je choisie les 28 et ca reste
toujours meme.si j'explique mal dit le moi je detaillerai plus.
"LE TROLL" a écrit :
Oh là mes brave:
L'exemple indique pour le 4eme groupe IP (1, 5, 79...), et
il dit "ip mais qui NE se suivent", donc c'est bien
traitement aléatoire qu'il faut mettre dans la boucle, en
vérifiant que l'aléatoire n'a pas causé de mitoyenneté d'IP,
moi y'en a m'essayer à ce jeu:
-----------------------
Sub cree_ip()
Dim i As Long
Dim j As Long
Dim k As Long
Dim ip(256) As Long
Dim ip_ok(30) As Long ' ip retenues
Dim hasard As Long
Dim presente As String
Dim trans As Long
'
For i = 0 To 255 ' choix des ip
ip(i) = Format(i, "000")
Next i
Randomize
hasard = 0
'
For i = 1 To 30
Do While ip(hasard) = 256 ' = déjà choisit
hasard = Int((255 - 0 + 1) * Rnd + 0) ' pseudo
aléatoire
Loop
If hasard > 0 Then ip(hasard - 1) = 256 ' enlève - 1:
interdit mitoyenneté
ip(hasard) = 256 ' ip à ne plus sélectionner
ip_ok(i) = hasard ' ip sélectionnée
If hasard < 255 Then ip(hasard + 1) = 256 ' enlève + 1:
interdit mitoyenneté
Next i
'
For i = 1 To 30 ' tri croissant
For j = 1 To 30
For k = 1 To 30
If j = k Then Exit For
If ip_ok(j) < ip_ok(k) Then
trans = ip_ok(j)
ip_ok(j) = ip_ok(k)
ip_ok(k) = trans
Exit For
End If
Next k
Next j
Next i
'
presente = "" ' présentation
For i = 1 To 30
presente = presente & Format(ip_ok(i), "000") & vbLf
Next i
MsgBox presente, vbInformation
End Sub
-----------------------testé OK
"squat541" <squat541@discussions.microsoft.com> a écrit dans
le message de news:
EDEBDB18-FF41-40BD-ADD6-95807F914450@microsoft.com...
> salut a tous,voila j'explique,g un prog qui me liste tout
> les ip des adresses
> de classe a,b,c.
> par exemple,je tape 85.22.55. adresse de classe c,et il
> me sort tout les ip
> du reseau 85.22.55. (de 0 a 255).
> je voudrais afficher seulement 30 ip mais qui ne suivent
> pas85.22.55.(1,5 ,
> 79,101, 103,119.....),quel boucle je dois utiliser pour
> faire cela vu que ce
> n'est pas des chiffres qui se suivent?
> merci de repondre
If Option4.Value = True Then
'je tape le premier champ
Adr2Start = 22
Adr2End = 22
Adr3Start = 5
Adr3End = 5
Fin = 254
End If
Loop
Adr3Start = Adr3Start + 1
Je vous remercie tous de vous intéresser à mon cas,c presque ca sauf que
je
veux pouvoir les choisirs et pas aleatoire sinon c une bonne idée.je vous
met
le prog du bouton commande qui vous aidera a me comprendre
Private Sub Command1_Click()
If Command1.Caption = "Analyse" Then
Command1.Caption = "Stopper"
Dim Depart As Integer 'variables utilisées pour la barre
Dim Fin As Integer 'de défilement
Dim Iptest As String
Dim Result As String
Dim Adr1Start As Integer
Dim Adr1End As Integer
Dim Adr2Start As Integer 'variables utilisées pour les
Dim Adr2End As Integer 'adresses Ip
Dim Adr3Start As Integer
Dim Adr3End As Integer
Dim Cpt As Integer 'Utilisée pour définir le dernier champ
'de l'adresse IP
'********************
'* initialistaion *
'********************
ListView1.ListItems.Clear
Depart = 0
If Option1.Value = True Then
Adr2Start = 0
Adr2End = 255
Adr3Start = 0
Adr3End = 255
Fin = 766
End If
If Option2.Value = True Then
Adr2Start = Val(Text4.Text)
Adr2End = Val(Text4.Text)
Adr3Start = 0
Adr3End = 255
Fin = 510
End If
If Option3.Value = True Then
Adr2Start = Val(Text4.Text)
Adr2End = Val(Text4.Text)
Adr3Start = Val(Text5.Text)
Adr3End = Val(Text5.Text
Fin = 254
End If
If Option4.Value = True Then
'je tape le premier champ
Adr2Start = 22
Adr2End = 22
Adr3Start = 5
Adr3End = 5
Fin = 254
End If
ProgressBar1.Visible = True
ProgressBar1.Max = Fin
ProgressBar1.Min = Depart
Do Until Adr2Start > Adr2End
'boucle correspondant au deuxième champs de l'adresse IP
Do Until Adr3Start > Adr3End
'Boucle correspondant au troisième champs de l'adresse IP
'réinitialisation de cpt
Cpt = 1
'Cpt = 100
Do Until Cpt > 254
'boucle correspondant au quetrième champs de l'adresse IP
If Command1.Caption = "Analyse" Then Exit Sub
'Définition de l'adresse IP à tester
Iptest = Text3.Text + "." & Adr2Start & "." & Adr3Start
& "." & Cpt
DoEvents
Result = Echo(Iptest)
With ListView1.ListItems.Add
.Text = Iptest
If Result = "Failure" Then
.SubItems(2) = Result
DoEvents
Enregistrement Iptest, False
Else
'.SubItems(1) = GetHostName(ConvertIp(Iptest))
'Dim test As Double
'test = CDbl(ConvertIp(Iptest))
' On Error Resume Next
'.SubItems(1) > gethostbyaddr(CLng(ConvertIp(Iptest)), 4, AF_INET)
'.SubItems(1) =
gethostbyaddr(ConvertIp(Iptest),
4, AF_INET)
'.SubItems(1) > GetHostName(CLng(ConvertIp(Iptest)))
DoEvents
'.SubItems(1) = HostName(Iptest)
.SubItems(1) = GetHostNameFromIP(.Text)
DoEvents
Enregistrement Iptest, True
End If
End With
Cpt = Cpt + 1
Depart = Depart + 1
ProgressBar1.Value = Depart
Loop
Adr3Start = Adr3Start + 1
Loop
Adr2Start = Adr2Start + 1
Loop
ProgressBar1.Visible = False
Else
ProgressBar1.Visible = False
Command1.Caption = "Analyse"
End If
End Sub
Voila mon prob ce trouve a l'option 4,je cherche a modifier le 3eme champ
en
lui donnant 28 valeur mais que je ne modifie pas ces 28 reseau corresponde
au
reseau d'une entreprise,ce sont des adresses qui ne change pas.
un exemple 85.22.5.(0à255)
85.22.10.(0à255)
85.22.18.(0à255)
:
:
je modifie seulement le troisieme champ je choisie les 28 et ca reste
toujours meme.si j'explique mal dit le moi je detaillerai plus.
"LE TROLL" a écrit :Oh là mes brave:
L'exemple indique pour le 4eme groupe IP (1, 5, 79...), et
il dit "ip mais qui NE se suivent", donc c'est bien
traitement aléatoire qu'il faut mettre dans la boucle, en
vérifiant que l'aléatoire n'a pas causé de mitoyenneté d'IP,
moi y'en a m'essayer à ce jeu:
-----------------------
Sub cree_ip()
Dim i As Long
Dim j As Long
Dim k As Long
Dim ip(256) As Long
Dim ip_ok(30) As Long ' ip retenues
Dim hasard As Long
Dim presente As String
Dim trans As Long
'
For i = 0 To 255 ' choix des ip
ip(i) = Format(i, "000")
Next i
Randomize
hasard = 0
'
For i = 1 To 30
Do While ip(hasard) = 256 ' = déjà choisit
hasard = Int((255 - 0 + 1) * Rnd + 0) ' pseudo
aléatoire
Loop
If hasard > 0 Then ip(hasard - 1) = 256 ' enlève - 1:
interdit mitoyenneté
ip(hasard) = 256 ' ip à ne plus sélectionner
ip_ok(i) = hasard ' ip sélectionnée
If hasard < 255 Then ip(hasard + 1) = 256 ' enlève + 1:
interdit mitoyenneté
Next i
'
For i = 1 To 30 ' tri croissant
For j = 1 To 30
For k = 1 To 30
If j = k Then Exit For
If ip_ok(j) < ip_ok(k) Then
trans = ip_ok(j)
ip_ok(j) = ip_ok(k)
ip_ok(k) = trans
Exit For
End If
Next k
Next j
Next i
'
presente = "" ' présentation
For i = 1 To 30
presente = presente & Format(ip_ok(i), "000") & vbLf
Next i
MsgBox presente, vbInformation
End Sub
-----------------------testé OK
"squat541" a écrit dans
le message de news:
> salut a tous,voila j'explique,g un prog qui me liste tout
> les ip des adresses
> de classe a,b,c.
> par exemple,je tape 85.22.55. adresse de classe c,et il
> me sort tout les ip
> du reseau 85.22.55. (de 0 a 255).
> je voudrais afficher seulement 30 ip mais qui ne suivent
> pas85.22.55.(1,5 ,
> 79,101, 103,119.....),quel boucle je dois utiliser pour
> faire cela vu que ce
> n'est pas des chiffres qui se suivent?
> merci de repondre
Déjà remplace tous les
If <var> = true then
par
If <var> then
ça ne change pas le fonctionnement mais c'est plus propre (discussion déjà
tenue sur ce forum).
Pour ton problème, il me semble qu'un tableau de 28 entiers (voire byte)
ferait l'affaire : dans ce tableau je mets les troisième nombre de l'adresse
(puisque tu les connais)
Donc T(1 to 28) as byte
Ensuite, au lieu d'écrire une boucle do, tu peux utiliser un for next
For I=1 to 28
adr3=T(I)
Next I
> If Option4.Value = True Then
> 'je tape le premier champ
> Adr2Start = 22
> Adr2End = 22
> Adr3Start = 5
> Adr3End = 5
> Fin = 254
> End If
devient
If Option4.Value Then
'je tape le premier champ
Adr2Start = 22
Adr2End = 22
Adr3Start = T(1)
Adr3End = T(28)
Fin = 254
End If
> Loop
> Adr3Start = Adr3Start + 1
devient
If Option4.Value then
I=I+1
Adr3Start=T(I)
Else
Adr3Startr3Start+1
End If
Quelques conseils supplémentaires, les noms des variables doivent être
adaptées au problème, ici adr3Start n'est l'adresse de départ mais l'adresse
courante qui parcourt la plage de Start à End, il serait donc plus judicieux
d'écrire adr3 tout seul, voir définr un type adr de la façon suivante
type adresse
champ1 as byte
champ2 as byte
champ3 as byte
champ4 as byte
end type
Encore mieux un objet dont les propriétés permettraient de gérer l'affichage
et le valeur
une propriété Adresse
AdresseIp(A as byte, B as byte, C as byte, D as byte) as double
AdresseIp=D+256*(C+256*(B+256*A))
fin
.... etc
"squat541" a écrit dans le message de
news:
> Je vous remercie tous de vous intéresser à mon cas,c presque ca sauf que
> je
> veux pouvoir les choisirs et pas aleatoire sinon c une bonne idée.je vous
> met
> le prog du bouton commande qui vous aidera a me comprendre
> Private Sub Command1_Click()
> If Command1.Caption = "Analyse" Then
> Command1.Caption = "Stopper"
> Dim Depart As Integer 'variables utilisées pour la barre
> Dim Fin As Integer 'de défilement
> Dim Iptest As String
> Dim Result As String
> Dim Adr1Start As Integer
> Dim Adr1End As Integer
> Dim Adr2Start As Integer 'variables utilisées pour les
> Dim Adr2End As Integer 'adresses Ip
> Dim Adr3Start As Integer
> Dim Adr3End As Integer
> Dim Cpt As Integer 'Utilisée pour définir le dernier champ
> 'de l'adresse IP
> '********************
> '* initialistaion *
> '********************
> ListView1.ListItems.Clear
> Depart = 0
> If Option1.Value = True Then
> Adr2Start = 0
> Adr2End = 255
> Adr3Start = 0
> Adr3End = 255
> Fin = 766
> End If
> If Option2.Value = True Then
> Adr2Start = Val(Text4.Text)
> Adr2End = Val(Text4.Text)
> Adr3Start = 0
> Adr3End = 255
> Fin = 510
> End If
> If Option3.Value = True Then
> Adr2Start = Val(Text4.Text)
> Adr2End = Val(Text4.Text)
> Adr3Start = Val(Text5.Text)
> Adr3End = Val(Text5.Text
> Fin = 254
> End If
> If Option4.Value = True Then
> 'je tape le premier champ
> Adr2Start = 22
> Adr2End = 22
> Adr3Start = 5
> Adr3End = 5
> Fin = 254
> End If
> ProgressBar1.Visible = True
> ProgressBar1.Max = Fin
> ProgressBar1.Min = Depart
> Do Until Adr2Start > Adr2End
> 'boucle correspondant au deuxième champs de l'adresse IP
> Do Until Adr3Start > Adr3End
> 'Boucle correspondant au troisième champs de l'adresse IP
> 'réinitialisation de cpt
> Cpt = 1
> 'Cpt = 100
> Do Until Cpt > 254
> 'boucle correspondant au quetrième champs de l'adresse IP
> If Command1.Caption = "Analyse" Then Exit Sub
> 'Définition de l'adresse IP à tester
> Iptest = Text3.Text + "." & Adr2Start & "." & Adr3Start
> & "." & Cpt
> DoEvents
> Result = Echo(Iptest)
> With ListView1.ListItems.Add
> .Text = Iptest
> If Result = "Failure" Then
> .SubItems(2) = Result
> DoEvents
> Enregistrement Iptest, False
> Else
> '.SubItems(1) = GetHostName(ConvertIp(Iptest))
> 'Dim test As Double
> 'test = CDbl(ConvertIp(Iptest))
> ' On Error Resume Next
> '.SubItems(1) > > gethostbyaddr(CLng(ConvertIp(Iptest)), 4, AF_INET)
> '.SubItems(1) =
> gethostbyaddr(ConvertIp(Iptest),
> 4, AF_INET)
> '.SubItems(1) > > GetHostName(CLng(ConvertIp(Iptest)))
> DoEvents
> '.SubItems(1) = HostName(Iptest)
> .SubItems(1) = GetHostNameFromIP(.Text)
> DoEvents
> Enregistrement Iptest, True
> End If
> End With
> Cpt = Cpt + 1
> Depart = Depart + 1
> ProgressBar1.Value = Depart
> Loop
> Adr3Start = Adr3Start + 1
> Loop
> Adr2Start = Adr2Start + 1
> Loop
>
> ProgressBar1.Visible = False
>
> Else
> ProgressBar1.Visible = False
> Command1.Caption = "Analyse"
> End If
>
> End Sub
>
> Voila mon prob ce trouve a l'option 4,je cherche a modifier le 3eme champ
> en
> lui donnant 28 valeur mais que je ne modifie pas ces 28 reseau corresponde
> au
> reseau d'une entreprise,ce sont des adresses qui ne change pas.
> un exemple 85.22.5.(0à255)
> 85.22.10.(0à255)
> 85.22.18.(0à255)
> :
> :
> je modifie seulement le troisieme champ je choisie les 28 et ca reste
> toujours meme.si j'explique mal dit le moi je detaillerai plus.
>
>
> "LE TROLL" a écrit :
>
>> Oh là mes brave:
>>
>> L'exemple indique pour le 4eme groupe IP (1, 5, 79...), et
>> il dit "ip mais qui NE se suivent", donc c'est bien
>> traitement aléatoire qu'il faut mettre dans la boucle, en
>> vérifiant que l'aléatoire n'a pas causé de mitoyenneté d'IP,
>> moi y'en a m'essayer à ce jeu:
>> -----------------------
>>
>> Sub cree_ip()
>> Dim i As Long
>> Dim j As Long
>> Dim k As Long
>> Dim ip(256) As Long
>> Dim ip_ok(30) As Long ' ip retenues
>> Dim hasard As Long
>> Dim presente As String
>> Dim trans As Long
>> '
>> For i = 0 To 255 ' choix des ip
>> ip(i) = Format(i, "000")
>> Next i
>> Randomize
>> hasard = 0
>> '
>> For i = 1 To 30
>> Do While ip(hasard) = 256 ' = déjà choisit
>> hasard = Int((255 - 0 + 1) * Rnd + 0) ' pseudo
>> aléatoire
>> Loop
>> If hasard > 0 Then ip(hasard - 1) = 256 ' enlève - 1:
>> interdit mitoyenneté
>> ip(hasard) = 256 ' ip à ne plus sélectionner
>> ip_ok(i) = hasard ' ip sélectionnée
>> If hasard < 255 Then ip(hasard + 1) = 256 ' enlève + 1:
>> interdit mitoyenneté
>> Next i
>> '
>> For i = 1 To 30 ' tri croissant
>> For j = 1 To 30
>> For k = 1 To 30
>> If j = k Then Exit For
>> If ip_ok(j) < ip_ok(k) Then
>> trans = ip_ok(j)
>> ip_ok(j) = ip_ok(k)
>> ip_ok(k) = trans
>> Exit For
>> End If
>> Next k
>> Next j
>> Next i
>> '
>> presente = "" ' présentation
>> For i = 1 To 30
>> presente = presente & Format(ip_ok(i), "000") & vbLf
>> Next i
>> MsgBox presente, vbInformation
>> End Sub
>> -----------------------testé OK
>>
>>
>> "squat541" a écrit dans
>> le message de news:
>>
>> > salut a tous,voila j'explique,g un prog qui me liste tout
>> > les ip des adresses
>> > de classe a,b,c.
>> > par exemple,je tape 85.22.55. adresse de classe c,et il
>> > me sort tout les ip
>> > du reseau 85.22.55. (de 0 a 255).
>> > je voudrais afficher seulement 30 ip mais qui ne suivent
>> > pas85.22.55.(1,5 ,
>> > 79,101, 103,119.....),quel boucle je dois utiliser pour
>> > faire cela vu que ce
>> > n'est pas des chiffres qui se suivent?
>> > merci de repondre
>>
>>
>>
Déjà remplace tous les
If <var> = true then
par
If <var> then
ça ne change pas le fonctionnement mais c'est plus propre (discussion déjà
tenue sur ce forum).
Pour ton problème, il me semble qu'un tableau de 28 entiers (voire byte)
ferait l'affaire : dans ce tableau je mets les troisième nombre de l'adresse
(puisque tu les connais)
Donc T(1 to 28) as byte
Ensuite, au lieu d'écrire une boucle do, tu peux utiliser un for next
For I=1 to 28
adr3=T(I)
Next I
> If Option4.Value = True Then
> 'je tape le premier champ
> Adr2Start = 22
> Adr2End = 22
> Adr3Start = 5
> Adr3End = 5
> Fin = 254
> End If
devient
If Option4.Value Then
'je tape le premier champ
Adr2Start = 22
Adr2End = 22
Adr3Start = T(1)
Adr3End = T(28)
Fin = 254
End If
> Loop
> Adr3Start = Adr3Start + 1
devient
If Option4.Value then
I=I+1
Adr3Start=T(I)
Else
Adr3Startr3Start+1
End If
Quelques conseils supplémentaires, les noms des variables doivent être
adaptées au problème, ici adr3Start n'est l'adresse de départ mais l'adresse
courante qui parcourt la plage de Start à End, il serait donc plus judicieux
d'écrire adr3 tout seul, voir définr un type adr de la façon suivante
type adresse
champ1 as byte
champ2 as byte
champ3 as byte
champ4 as byte
end type
Encore mieux un objet dont les propriétés permettraient de gérer l'affichage
et le valeur
une propriété Adresse
AdresseIp(A as byte, B as byte, C as byte, D as byte) as double
AdresseIp=D+256*(C+256*(B+256*A))
fin
.... etc
"squat541" <squat541@discussions.microsoft.com> a écrit dans le message de
news: 43705B1D-8FFA-495A-BE68-114BD2BE5859@microsoft.com...
> Je vous remercie tous de vous intéresser à mon cas,c presque ca sauf que
> je
> veux pouvoir les choisirs et pas aleatoire sinon c une bonne idée.je vous
> met
> le prog du bouton commande qui vous aidera a me comprendre
> Private Sub Command1_Click()
> If Command1.Caption = "Analyse" Then
> Command1.Caption = "Stopper"
> Dim Depart As Integer 'variables utilisées pour la barre
> Dim Fin As Integer 'de défilement
> Dim Iptest As String
> Dim Result As String
> Dim Adr1Start As Integer
> Dim Adr1End As Integer
> Dim Adr2Start As Integer 'variables utilisées pour les
> Dim Adr2End As Integer 'adresses Ip
> Dim Adr3Start As Integer
> Dim Adr3End As Integer
> Dim Cpt As Integer 'Utilisée pour définir le dernier champ
> 'de l'adresse IP
> '********************
> '* initialistaion *
> '********************
> ListView1.ListItems.Clear
> Depart = 0
> If Option1.Value = True Then
> Adr2Start = 0
> Adr2End = 255
> Adr3Start = 0
> Adr3End = 255
> Fin = 766
> End If
> If Option2.Value = True Then
> Adr2Start = Val(Text4.Text)
> Adr2End = Val(Text4.Text)
> Adr3Start = 0
> Adr3End = 255
> Fin = 510
> End If
> If Option3.Value = True Then
> Adr2Start = Val(Text4.Text)
> Adr2End = Val(Text4.Text)
> Adr3Start = Val(Text5.Text)
> Adr3End = Val(Text5.Text
> Fin = 254
> End If
> If Option4.Value = True Then
> 'je tape le premier champ
> Adr2Start = 22
> Adr2End = 22
> Adr3Start = 5
> Adr3End = 5
> Fin = 254
> End If
> ProgressBar1.Visible = True
> ProgressBar1.Max = Fin
> ProgressBar1.Min = Depart
> Do Until Adr2Start > Adr2End
> 'boucle correspondant au deuxième champs de l'adresse IP
> Do Until Adr3Start > Adr3End
> 'Boucle correspondant au troisième champs de l'adresse IP
> 'réinitialisation de cpt
> Cpt = 1
> 'Cpt = 100
> Do Until Cpt > 254
> 'boucle correspondant au quetrième champs de l'adresse IP
> If Command1.Caption = "Analyse" Then Exit Sub
> 'Définition de l'adresse IP à tester
> Iptest = Text3.Text + "." & Adr2Start & "." & Adr3Start
> & "." & Cpt
> DoEvents
> Result = Echo(Iptest)
> With ListView1.ListItems.Add
> .Text = Iptest
> If Result = "Failure" Then
> .SubItems(2) = Result
> DoEvents
> Enregistrement Iptest, False
> Else
> '.SubItems(1) = GetHostName(ConvertIp(Iptest))
> 'Dim test As Double
> 'test = CDbl(ConvertIp(Iptest))
> ' On Error Resume Next
> '.SubItems(1) > > gethostbyaddr(CLng(ConvertIp(Iptest)), 4, AF_INET)
> '.SubItems(1) =
> gethostbyaddr(ConvertIp(Iptest),
> 4, AF_INET)
> '.SubItems(1) > > GetHostName(CLng(ConvertIp(Iptest)))
> DoEvents
> '.SubItems(1) = HostName(Iptest)
> .SubItems(1) = GetHostNameFromIP(.Text)
> DoEvents
> Enregistrement Iptest, True
> End If
> End With
> Cpt = Cpt + 1
> Depart = Depart + 1
> ProgressBar1.Value = Depart
> Loop
> Adr3Start = Adr3Start + 1
> Loop
> Adr2Start = Adr2Start + 1
> Loop
>
> ProgressBar1.Visible = False
>
> Else
> ProgressBar1.Visible = False
> Command1.Caption = "Analyse"
> End If
>
> End Sub
>
> Voila mon prob ce trouve a l'option 4,je cherche a modifier le 3eme champ
> en
> lui donnant 28 valeur mais que je ne modifie pas ces 28 reseau corresponde
> au
> reseau d'une entreprise,ce sont des adresses qui ne change pas.
> un exemple 85.22.5.(0à255)
> 85.22.10.(0à255)
> 85.22.18.(0à255)
> :
> :
> je modifie seulement le troisieme champ je choisie les 28 et ca reste
> toujours meme.si j'explique mal dit le moi je detaillerai plus.
>
>
> "LE TROLL" a écrit :
>
>> Oh là mes brave:
>>
>> L'exemple indique pour le 4eme groupe IP (1, 5, 79...), et
>> il dit "ip mais qui NE se suivent", donc c'est bien
>> traitement aléatoire qu'il faut mettre dans la boucle, en
>> vérifiant que l'aléatoire n'a pas causé de mitoyenneté d'IP,
>> moi y'en a m'essayer à ce jeu:
>> -----------------------
>>
>> Sub cree_ip()
>> Dim i As Long
>> Dim j As Long
>> Dim k As Long
>> Dim ip(256) As Long
>> Dim ip_ok(30) As Long ' ip retenues
>> Dim hasard As Long
>> Dim presente As String
>> Dim trans As Long
>> '
>> For i = 0 To 255 ' choix des ip
>> ip(i) = Format(i, "000")
>> Next i
>> Randomize
>> hasard = 0
>> '
>> For i = 1 To 30
>> Do While ip(hasard) = 256 ' = déjà choisit
>> hasard = Int((255 - 0 + 1) * Rnd + 0) ' pseudo
>> aléatoire
>> Loop
>> If hasard > 0 Then ip(hasard - 1) = 256 ' enlève - 1:
>> interdit mitoyenneté
>> ip(hasard) = 256 ' ip à ne plus sélectionner
>> ip_ok(i) = hasard ' ip sélectionnée
>> If hasard < 255 Then ip(hasard + 1) = 256 ' enlève + 1:
>> interdit mitoyenneté
>> Next i
>> '
>> For i = 1 To 30 ' tri croissant
>> For j = 1 To 30
>> For k = 1 To 30
>> If j = k Then Exit For
>> If ip_ok(j) < ip_ok(k) Then
>> trans = ip_ok(j)
>> ip_ok(j) = ip_ok(k)
>> ip_ok(k) = trans
>> Exit For
>> End If
>> Next k
>> Next j
>> Next i
>> '
>> presente = "" ' présentation
>> For i = 1 To 30
>> presente = presente & Format(ip_ok(i), "000") & vbLf
>> Next i
>> MsgBox presente, vbInformation
>> End Sub
>> -----------------------testé OK
>>
>>
>> "squat541" <squat541@discussions.microsoft.com> a écrit dans
>> le message de news:
>> EDEBDB18-FF41-40BD-ADD6-95807F914450@microsoft.com...
>> > salut a tous,voila j'explique,g un prog qui me liste tout
>> > les ip des adresses
>> > de classe a,b,c.
>> > par exemple,je tape 85.22.55. adresse de classe c,et il
>> > me sort tout les ip
>> > du reseau 85.22.55. (de 0 a 255).
>> > je voudrais afficher seulement 30 ip mais qui ne suivent
>> > pas85.22.55.(1,5 ,
>> > 79,101, 103,119.....),quel boucle je dois utiliser pour
>> > faire cela vu que ce
>> > n'est pas des chiffres qui se suivent?
>> > merci de repondre
>>
>>
>>
Déjà remplace tous les
If <var> = true then
par
If <var> then
ça ne change pas le fonctionnement mais c'est plus propre (discussion déjà
tenue sur ce forum).
Pour ton problème, il me semble qu'un tableau de 28 entiers (voire byte)
ferait l'affaire : dans ce tableau je mets les troisième nombre de l'adresse
(puisque tu les connais)
Donc T(1 to 28) as byte
Ensuite, au lieu d'écrire une boucle do, tu peux utiliser un for next
For I=1 to 28
adr3=T(I)
Next I
> If Option4.Value = True Then
> 'je tape le premier champ
> Adr2Start = 22
> Adr2End = 22
> Adr3Start = 5
> Adr3End = 5
> Fin = 254
> End If
devient
If Option4.Value Then
'je tape le premier champ
Adr2Start = 22
Adr2End = 22
Adr3Start = T(1)
Adr3End = T(28)
Fin = 254
End If
> Loop
> Adr3Start = Adr3Start + 1
devient
If Option4.Value then
I=I+1
Adr3Start=T(I)
Else
Adr3Startr3Start+1
End If
Quelques conseils supplémentaires, les noms des variables doivent être
adaptées au problème, ici adr3Start n'est l'adresse de départ mais l'adresse
courante qui parcourt la plage de Start à End, il serait donc plus judicieux
d'écrire adr3 tout seul, voir définr un type adr de la façon suivante
type adresse
champ1 as byte
champ2 as byte
champ3 as byte
champ4 as byte
end type
Encore mieux un objet dont les propriétés permettraient de gérer l'affichage
et le valeur
une propriété Adresse
AdresseIp(A as byte, B as byte, C as byte, D as byte) as double
AdresseIp=D+256*(C+256*(B+256*A))
fin
.... etc
"squat541" a écrit dans le message de
news:
> Je vous remercie tous de vous intéresser à mon cas,c presque ca sauf que
> je
> veux pouvoir les choisirs et pas aleatoire sinon c une bonne idée.je vous
> met
> le prog du bouton commande qui vous aidera a me comprendre
> Private Sub Command1_Click()
> If Command1.Caption = "Analyse" Then
> Command1.Caption = "Stopper"
> Dim Depart As Integer 'variables utilisées pour la barre
> Dim Fin As Integer 'de défilement
> Dim Iptest As String
> Dim Result As String
> Dim Adr1Start As Integer
> Dim Adr1End As Integer
> Dim Adr2Start As Integer 'variables utilisées pour les
> Dim Adr2End As Integer 'adresses Ip
> Dim Adr3Start As Integer
> Dim Adr3End As Integer
> Dim Cpt As Integer 'Utilisée pour définir le dernier champ
> 'de l'adresse IP
> '********************
> '* initialistaion *
> '********************
> ListView1.ListItems.Clear
> Depart = 0
> If Option1.Value = True Then
> Adr2Start = 0
> Adr2End = 255
> Adr3Start = 0
> Adr3End = 255
> Fin = 766
> End If
> If Option2.Value = True Then
> Adr2Start = Val(Text4.Text)
> Adr2End = Val(Text4.Text)
> Adr3Start = 0
> Adr3End = 255
> Fin = 510
> End If
> If Option3.Value = True Then
> Adr2Start = Val(Text4.Text)
> Adr2End = Val(Text4.Text)
> Adr3Start = Val(Text5.Text)
> Adr3End = Val(Text5.Text
> Fin = 254
> End If
> If Option4.Value = True Then
> 'je tape le premier champ
> Adr2Start = 22
> Adr2End = 22
> Adr3Start = 5
> Adr3End = 5
> Fin = 254
> End If
> ProgressBar1.Visible = True
> ProgressBar1.Max = Fin
> ProgressBar1.Min = Depart
> Do Until Adr2Start > Adr2End
> 'boucle correspondant au deuxième champs de l'adresse IP
> Do Until Adr3Start > Adr3End
> 'Boucle correspondant au troisième champs de l'adresse IP
> 'réinitialisation de cpt
> Cpt = 1
> 'Cpt = 100
> Do Until Cpt > 254
> 'boucle correspondant au quetrième champs de l'adresse IP
> If Command1.Caption = "Analyse" Then Exit Sub
> 'Définition de l'adresse IP à tester
> Iptest = Text3.Text + "." & Adr2Start & "." & Adr3Start
> & "." & Cpt
> DoEvents
> Result = Echo(Iptest)
> With ListView1.ListItems.Add
> .Text = Iptest
> If Result = "Failure" Then
> .SubItems(2) = Result
> DoEvents
> Enregistrement Iptest, False
> Else
> '.SubItems(1) = GetHostName(ConvertIp(Iptest))
> 'Dim test As Double
> 'test = CDbl(ConvertIp(Iptest))
> ' On Error Resume Next
> '.SubItems(1) > > gethostbyaddr(CLng(ConvertIp(Iptest)), 4, AF_INET)
> '.SubItems(1) =
> gethostbyaddr(ConvertIp(Iptest),
> 4, AF_INET)
> '.SubItems(1) > > GetHostName(CLng(ConvertIp(Iptest)))
> DoEvents
> '.SubItems(1) = HostName(Iptest)
> .SubItems(1) = GetHostNameFromIP(.Text)
> DoEvents
> Enregistrement Iptest, True
> End If
> End With
> Cpt = Cpt + 1
> Depart = Depart + 1
> ProgressBar1.Value = Depart
> Loop
> Adr3Start = Adr3Start + 1
> Loop
> Adr2Start = Adr2Start + 1
> Loop
>
> ProgressBar1.Visible = False
>
> Else
> ProgressBar1.Visible = False
> Command1.Caption = "Analyse"
> End If
>
> End Sub
>
> Voila mon prob ce trouve a l'option 4,je cherche a modifier le 3eme champ
> en
> lui donnant 28 valeur mais que je ne modifie pas ces 28 reseau corresponde
> au
> reseau d'une entreprise,ce sont des adresses qui ne change pas.
> un exemple 85.22.5.(0à255)
> 85.22.10.(0à255)
> 85.22.18.(0à255)
> :
> :
> je modifie seulement le troisieme champ je choisie les 28 et ca reste
> toujours meme.si j'explique mal dit le moi je detaillerai plus.
>
>
> "LE TROLL" a écrit :
>
>> Oh là mes brave:
>>
>> L'exemple indique pour le 4eme groupe IP (1, 5, 79...), et
>> il dit "ip mais qui NE se suivent", donc c'est bien
>> traitement aléatoire qu'il faut mettre dans la boucle, en
>> vérifiant que l'aléatoire n'a pas causé de mitoyenneté d'IP,
>> moi y'en a m'essayer à ce jeu:
>> -----------------------
>>
>> Sub cree_ip()
>> Dim i As Long
>> Dim j As Long
>> Dim k As Long
>> Dim ip(256) As Long
>> Dim ip_ok(30) As Long ' ip retenues
>> Dim hasard As Long
>> Dim presente As String
>> Dim trans As Long
>> '
>> For i = 0 To 255 ' choix des ip
>> ip(i) = Format(i, "000")
>> Next i
>> Randomize
>> hasard = 0
>> '
>> For i = 1 To 30
>> Do While ip(hasard) = 256 ' = déjà choisit
>> hasard = Int((255 - 0 + 1) * Rnd + 0) ' pseudo
>> aléatoire
>> Loop
>> If hasard > 0 Then ip(hasard - 1) = 256 ' enlève - 1:
>> interdit mitoyenneté
>> ip(hasard) = 256 ' ip à ne plus sélectionner
>> ip_ok(i) = hasard ' ip sélectionnée
>> If hasard < 255 Then ip(hasard + 1) = 256 ' enlève + 1:
>> interdit mitoyenneté
>> Next i
>> '
>> For i = 1 To 30 ' tri croissant
>> For j = 1 To 30
>> For k = 1 To 30
>> If j = k Then Exit For
>> If ip_ok(j) < ip_ok(k) Then
>> trans = ip_ok(j)
>> ip_ok(j) = ip_ok(k)
>> ip_ok(k) = trans
>> Exit For
>> End If
>> Next k
>> Next j
>> Next i
>> '
>> presente = "" ' présentation
>> For i = 1 To 30
>> presente = presente & Format(ip_ok(i), "000") & vbLf
>> Next i
>> MsgBox presente, vbInformation
>> End Sub
>> -----------------------testé OK
>>
>>
>> "squat541" a écrit dans
>> le message de news:
>>
>> > salut a tous,voila j'explique,g un prog qui me liste tout
>> > les ip des adresses
>> > de classe a,b,c.
>> > par exemple,je tape 85.22.55. adresse de classe c,et il
>> > me sort tout les ip
>> > du reseau 85.22.55. (de 0 a 255).
>> > je voudrais afficher seulement 30 ip mais qui ne suivent
>> > pas85.22.55.(1,5 ,
>> > 79,101, 103,119.....),quel boucle je dois utiliser pour
>> > faire cela vu que ce
>> > n'est pas des chiffres qui se suivent?
>> > merci de repondre
>>
>>
>>
Merci Patrice tu ma bien orienté g reussi grace a toi,mais g une autre
question maintenant que g les resultat que souhaité je voudrais les mettre
dans un fichier.ini
exemple: g la liste des 28 sous reseau et lorsque je clic sur un sous
reseau
il m'affiche les adresses de 0 à 255.
je voudrait que les resultat soit en meme temps copier sur le fichier.ini
(est ce deja possible).
merci d'avance
"Patrice Henrio" a écrit :Déjà remplace tous les
If <var> = true then
par
If <var> then
ça ne change pas le fonctionnement mais c'est plus propre (discussion
déjà
tenue sur ce forum).
Pour ton problème, il me semble qu'un tableau de 28 entiers (voire byte)
ferait l'affaire : dans ce tableau je mets les troisième nombre de
l'adresse
(puisque tu les connais)
Donc T(1 to 28) as byte
Ensuite, au lieu d'écrire une boucle do, tu peux utiliser un for next
For I=1 to 28
adr3=T(I)
Next I
> If Option4.Value = True Then
> 'je tape le premier champ
> Adr2Start = 22
> Adr2End = 22
> Adr3Start = 5
> Adr3End = 5
> Fin = 254
> End If
devient
If Option4.Value Then
'je tape le premier champ
Adr2Start = 22
Adr2End = 22
Adr3Start = T(1)
Adr3End = T(28)
Fin = 254
End If
> Loop
> Adr3Start = Adr3Start + 1
devient
If Option4.Value then
I=I+1
Adr3Start=T(I)
Else
Adr3Startr3Start+1
End If
Quelques conseils supplémentaires, les noms des variables doivent être
adaptées au problème, ici adr3Start n'est l'adresse de départ mais
l'adresse
courante qui parcourt la plage de Start à End, il serait donc plus
judicieux
d'écrire adr3 tout seul, voir définr un type adr de la façon suivante
type adresse
champ1 as byte
champ2 as byte
champ3 as byte
champ4 as byte
end type
Encore mieux un objet dont les propriétés permettraient de gérer
l'affichage
et le valeur
une propriété Adresse
AdresseIp(A as byte, B as byte, C as byte, D as byte) as double
AdresseIp=D+256*(C+256*(B+256*A))
fin
.... etc
"squat541" a écrit dans le message
de
news:
> Je vous remercie tous de vous intéresser à mon cas,c presque ca sauf
> que
> je
> veux pouvoir les choisirs et pas aleatoire sinon c une bonne idée.je
> vous
> met
> le prog du bouton commande qui vous aidera a me comprendre
> Private Sub Command1_Click()
> If Command1.Caption = "Analyse" Then
> Command1.Caption = "Stopper"
> Dim Depart As Integer 'variables utilisées pour la barre
> Dim Fin As Integer 'de défilement
> Dim Iptest As String
> Dim Result As String
> Dim Adr1Start As Integer
> Dim Adr1End As Integer
> Dim Adr2Start As Integer 'variables utilisées pour les
> Dim Adr2End As Integer 'adresses Ip
> Dim Adr3Start As Integer
> Dim Adr3End As Integer
> Dim Cpt As Integer 'Utilisée pour définir le dernier champ
> 'de l'adresse IP
> '********************
> '* initialistaion *
> '********************
> ListView1.ListItems.Clear
> Depart = 0
> If Option1.Value = True Then
> Adr2Start = 0
> Adr2End = 255
> Adr3Start = 0
> Adr3End = 255
> Fin = 766
> End If
> If Option2.Value = True Then
> Adr2Start = Val(Text4.Text)
> Adr2End = Val(Text4.Text)
> Adr3Start = 0
> Adr3End = 255
> Fin = 510
> End If
> If Option3.Value = True Then
> Adr2Start = Val(Text4.Text)
> Adr2End = Val(Text4.Text)
> Adr3Start = Val(Text5.Text)
> Adr3End = Val(Text5.Text
> Fin = 254
> End If
> If Option4.Value = True Then
> 'je tape le premier champ
> Adr2Start = 22
> Adr2End = 22
> Adr3Start = 5
> Adr3End = 5
> Fin = 254
> End If
> ProgressBar1.Visible = True
> ProgressBar1.Max = Fin
> ProgressBar1.Min = Depart
> Do Until Adr2Start > Adr2End
> 'boucle correspondant au deuxième champs de l'adresse IP
> Do Until Adr3Start > Adr3End
> 'Boucle correspondant au troisième champs de l'adresse IP
> 'réinitialisation de cpt
> Cpt = 1
> 'Cpt = 100
> Do Until Cpt > 254
> 'boucle correspondant au quetrième champs de l'adresse IP
> If Command1.Caption = "Analyse" Then Exit Sub
> 'Définition de l'adresse IP à tester
> Iptest = Text3.Text + "." & Adr2Start & "." &
> Adr3Start
> & "." & Cpt
> DoEvents
> Result = Echo(Iptest)
> With ListView1.ListItems.Add
> .Text = Iptest
> If Result = "Failure" Then
> .SubItems(2) = Result
> DoEvents
> Enregistrement Iptest, False
> Else
> '.SubItems(1) = GetHostName(ConvertIp(Iptest))
> 'Dim test As Double
> 'test = CDbl(ConvertIp(Iptest))
> ' On Error Resume Next
> '.SubItems(1) >> > gethostbyaddr(CLng(ConvertIp(Iptest)), 4, AF_INET)
> '.SubItems(1) >> > gethostbyaddr(ConvertIp(Iptest),
> 4, AF_INET)
> '.SubItems(1) >> > GetHostName(CLng(ConvertIp(Iptest)))
> DoEvents
> '.SubItems(1) = HostName(Iptest)
> .SubItems(1) = GetHostNameFromIP(.Text)
> DoEvents
> Enregistrement Iptest, True
> End If
> End With
> Cpt = Cpt + 1
> Depart = Depart + 1
> ProgressBar1.Value = Depart
> Loop
> Adr3Start = Adr3Start + 1
> Loop
> Adr2Start = Adr2Start + 1
> Loop
>
> ProgressBar1.Visible = False
>
> Else
> ProgressBar1.Visible = False
> Command1.Caption = "Analyse"
> End If
>
> End Sub
>
> Voila mon prob ce trouve a l'option 4,je cherche a modifier le 3eme
> champ
> en
> lui donnant 28 valeur mais que je ne modifie pas ces 28 reseau
> corresponde
> au
> reseau d'une entreprise,ce sont des adresses qui ne change pas.
> un exemple 85.22.5.(0à255)
> 85.22.10.(0à255)
> 85.22.18.(0à255)
> :
> :
> je modifie seulement le troisieme champ je choisie les 28 et ca reste
> toujours meme.si j'explique mal dit le moi je detaillerai plus.
>
>
> "LE TROLL" a écrit :
>
>> Oh là mes brave:
>>
>> L'exemple indique pour le 4eme groupe IP (1, 5, 79...), et
>> il dit "ip mais qui NE se suivent", donc c'est bien
>> traitement aléatoire qu'il faut mettre dans la boucle, en
>> vérifiant que l'aléatoire n'a pas causé de mitoyenneté d'IP,
>> moi y'en a m'essayer à ce jeu:
>> -----------------------
>>
>> Sub cree_ip()
>> Dim i As Long
>> Dim j As Long
>> Dim k As Long
>> Dim ip(256) As Long
>> Dim ip_ok(30) As Long ' ip retenues
>> Dim hasard As Long
>> Dim presente As String
>> Dim trans As Long
>> '
>> For i = 0 To 255 ' choix des ip
>> ip(i) = Format(i, "000")
>> Next i
>> Randomize
>> hasard = 0
>> '
>> For i = 1 To 30
>> Do While ip(hasard) = 256 ' = déjà choisit
>> hasard = Int((255 - 0 + 1) * Rnd + 0) ' pseudo
>> aléatoire
>> Loop
>> If hasard > 0 Then ip(hasard - 1) = 256 ' enlève - 1:
>> interdit mitoyenneté
>> ip(hasard) = 256 ' ip à ne plus sélectionner
>> ip_ok(i) = hasard ' ip sélectionnée
>> If hasard < 255 Then ip(hasard + 1) = 256 ' enlève + 1:
>> interdit mitoyenneté
>> Next i
>> '
>> For i = 1 To 30 ' tri croissant
>> For j = 1 To 30
>> For k = 1 To 30
>> If j = k Then Exit For
>> If ip_ok(j) < ip_ok(k) Then
>> trans = ip_ok(j)
>> ip_ok(j) = ip_ok(k)
>> ip_ok(k) = trans
>> Exit For
>> End If
>> Next k
>> Next j
>> Next i
>> '
>> presente = "" ' présentation
>> For i = 1 To 30
>> presente = presente & Format(ip_ok(i), "000") & vbLf
>> Next i
>> MsgBox presente, vbInformation
>> End Sub
>> -----------------------testé OK
>>
>>
>> "squat541" a écrit dans
>> le message de news:
>>
>> > salut a tous,voila j'explique,g un prog qui me liste tout
>> > les ip des adresses
>> > de classe a,b,c.
>> > par exemple,je tape 85.22.55. adresse de classe c,et il
>> > me sort tout les ip
>> > du reseau 85.22.55. (de 0 a 255).
>> > je voudrais afficher seulement 30 ip mais qui ne suivent
>> > pas85.22.55.(1,5 ,
>> > 79,101, 103,119.....),quel boucle je dois utiliser pour
>> > faire cela vu que ce
>> > n'est pas des chiffres qui se suivent?
>> > merci de repondre
>>
>>
>>
Merci Patrice tu ma bien orienté g reussi grace a toi,mais g une autre
question maintenant que g les resultat que souhaité je voudrais les mettre
dans un fichier.ini
exemple: g la liste des 28 sous reseau et lorsque je clic sur un sous
reseau
il m'affiche les adresses de 0 à 255.
je voudrait que les resultat soit en meme temps copier sur le fichier.ini
(est ce deja possible).
merci d'avance
"Patrice Henrio" a écrit :
Déjà remplace tous les
If <var> = true then
par
If <var> then
ça ne change pas le fonctionnement mais c'est plus propre (discussion
déjà
tenue sur ce forum).
Pour ton problème, il me semble qu'un tableau de 28 entiers (voire byte)
ferait l'affaire : dans ce tableau je mets les troisième nombre de
l'adresse
(puisque tu les connais)
Donc T(1 to 28) as byte
Ensuite, au lieu d'écrire une boucle do, tu peux utiliser un for next
For I=1 to 28
adr3=T(I)
Next I
> If Option4.Value = True Then
> 'je tape le premier champ
> Adr2Start = 22
> Adr2End = 22
> Adr3Start = 5
> Adr3End = 5
> Fin = 254
> End If
devient
If Option4.Value Then
'je tape le premier champ
Adr2Start = 22
Adr2End = 22
Adr3Start = T(1)
Adr3End = T(28)
Fin = 254
End If
> Loop
> Adr3Start = Adr3Start + 1
devient
If Option4.Value then
I=I+1
Adr3Start=T(I)
Else
Adr3Startr3Start+1
End If
Quelques conseils supplémentaires, les noms des variables doivent être
adaptées au problème, ici adr3Start n'est l'adresse de départ mais
l'adresse
courante qui parcourt la plage de Start à End, il serait donc plus
judicieux
d'écrire adr3 tout seul, voir définr un type adr de la façon suivante
type adresse
champ1 as byte
champ2 as byte
champ3 as byte
champ4 as byte
end type
Encore mieux un objet dont les propriétés permettraient de gérer
l'affichage
et le valeur
une propriété Adresse
AdresseIp(A as byte, B as byte, C as byte, D as byte) as double
AdresseIp=D+256*(C+256*(B+256*A))
fin
.... etc
"squat541" <squat541@discussions.microsoft.com> a écrit dans le message
de
news: 43705B1D-8FFA-495A-BE68-114BD2BE5859@microsoft.com...
> Je vous remercie tous de vous intéresser à mon cas,c presque ca sauf
> que
> je
> veux pouvoir les choisirs et pas aleatoire sinon c une bonne idée.je
> vous
> met
> le prog du bouton commande qui vous aidera a me comprendre
> Private Sub Command1_Click()
> If Command1.Caption = "Analyse" Then
> Command1.Caption = "Stopper"
> Dim Depart As Integer 'variables utilisées pour la barre
> Dim Fin As Integer 'de défilement
> Dim Iptest As String
> Dim Result As String
> Dim Adr1Start As Integer
> Dim Adr1End As Integer
> Dim Adr2Start As Integer 'variables utilisées pour les
> Dim Adr2End As Integer 'adresses Ip
> Dim Adr3Start As Integer
> Dim Adr3End As Integer
> Dim Cpt As Integer 'Utilisée pour définir le dernier champ
> 'de l'adresse IP
> '********************
> '* initialistaion *
> '********************
> ListView1.ListItems.Clear
> Depart = 0
> If Option1.Value = True Then
> Adr2Start = 0
> Adr2End = 255
> Adr3Start = 0
> Adr3End = 255
> Fin = 766
> End If
> If Option2.Value = True Then
> Adr2Start = Val(Text4.Text)
> Adr2End = Val(Text4.Text)
> Adr3Start = 0
> Adr3End = 255
> Fin = 510
> End If
> If Option3.Value = True Then
> Adr2Start = Val(Text4.Text)
> Adr2End = Val(Text4.Text)
> Adr3Start = Val(Text5.Text)
> Adr3End = Val(Text5.Text
> Fin = 254
> End If
> If Option4.Value = True Then
> 'je tape le premier champ
> Adr2Start = 22
> Adr2End = 22
> Adr3Start = 5
> Adr3End = 5
> Fin = 254
> End If
> ProgressBar1.Visible = True
> ProgressBar1.Max = Fin
> ProgressBar1.Min = Depart
> Do Until Adr2Start > Adr2End
> 'boucle correspondant au deuxième champs de l'adresse IP
> Do Until Adr3Start > Adr3End
> 'Boucle correspondant au troisième champs de l'adresse IP
> 'réinitialisation de cpt
> Cpt = 1
> 'Cpt = 100
> Do Until Cpt > 254
> 'boucle correspondant au quetrième champs de l'adresse IP
> If Command1.Caption = "Analyse" Then Exit Sub
> 'Définition de l'adresse IP à tester
> Iptest = Text3.Text + "." & Adr2Start & "." &
> Adr3Start
> & "." & Cpt
> DoEvents
> Result = Echo(Iptest)
> With ListView1.ListItems.Add
> .Text = Iptest
> If Result = "Failure" Then
> .SubItems(2) = Result
> DoEvents
> Enregistrement Iptest, False
> Else
> '.SubItems(1) = GetHostName(ConvertIp(Iptest))
> 'Dim test As Double
> 'test = CDbl(ConvertIp(Iptest))
> ' On Error Resume Next
> '.SubItems(1) >> > gethostbyaddr(CLng(ConvertIp(Iptest)), 4, AF_INET)
> '.SubItems(1) >> > gethostbyaddr(ConvertIp(Iptest),
> 4, AF_INET)
> '.SubItems(1) >> > GetHostName(CLng(ConvertIp(Iptest)))
> DoEvents
> '.SubItems(1) = HostName(Iptest)
> .SubItems(1) = GetHostNameFromIP(.Text)
> DoEvents
> Enregistrement Iptest, True
> End If
> End With
> Cpt = Cpt + 1
> Depart = Depart + 1
> ProgressBar1.Value = Depart
> Loop
> Adr3Start = Adr3Start + 1
> Loop
> Adr2Start = Adr2Start + 1
> Loop
>
> ProgressBar1.Visible = False
>
> Else
> ProgressBar1.Visible = False
> Command1.Caption = "Analyse"
> End If
>
> End Sub
>
> Voila mon prob ce trouve a l'option 4,je cherche a modifier le 3eme
> champ
> en
> lui donnant 28 valeur mais que je ne modifie pas ces 28 reseau
> corresponde
> au
> reseau d'une entreprise,ce sont des adresses qui ne change pas.
> un exemple 85.22.5.(0à255)
> 85.22.10.(0à255)
> 85.22.18.(0à255)
> :
> :
> je modifie seulement le troisieme champ je choisie les 28 et ca reste
> toujours meme.si j'explique mal dit le moi je detaillerai plus.
>
>
> "LE TROLL" a écrit :
>
>> Oh là mes brave:
>>
>> L'exemple indique pour le 4eme groupe IP (1, 5, 79...), et
>> il dit "ip mais qui NE se suivent", donc c'est bien
>> traitement aléatoire qu'il faut mettre dans la boucle, en
>> vérifiant que l'aléatoire n'a pas causé de mitoyenneté d'IP,
>> moi y'en a m'essayer à ce jeu:
>> -----------------------
>>
>> Sub cree_ip()
>> Dim i As Long
>> Dim j As Long
>> Dim k As Long
>> Dim ip(256) As Long
>> Dim ip_ok(30) As Long ' ip retenues
>> Dim hasard As Long
>> Dim presente As String
>> Dim trans As Long
>> '
>> For i = 0 To 255 ' choix des ip
>> ip(i) = Format(i, "000")
>> Next i
>> Randomize
>> hasard = 0
>> '
>> For i = 1 To 30
>> Do While ip(hasard) = 256 ' = déjà choisit
>> hasard = Int((255 - 0 + 1) * Rnd + 0) ' pseudo
>> aléatoire
>> Loop
>> If hasard > 0 Then ip(hasard - 1) = 256 ' enlève - 1:
>> interdit mitoyenneté
>> ip(hasard) = 256 ' ip à ne plus sélectionner
>> ip_ok(i) = hasard ' ip sélectionnée
>> If hasard < 255 Then ip(hasard + 1) = 256 ' enlève + 1:
>> interdit mitoyenneté
>> Next i
>> '
>> For i = 1 To 30 ' tri croissant
>> For j = 1 To 30
>> For k = 1 To 30
>> If j = k Then Exit For
>> If ip_ok(j) < ip_ok(k) Then
>> trans = ip_ok(j)
>> ip_ok(j) = ip_ok(k)
>> ip_ok(k) = trans
>> Exit For
>> End If
>> Next k
>> Next j
>> Next i
>> '
>> presente = "" ' présentation
>> For i = 1 To 30
>> presente = presente & Format(ip_ok(i), "000") & vbLf
>> Next i
>> MsgBox presente, vbInformation
>> End Sub
>> -----------------------testé OK
>>
>>
>> "squat541" <squat541@discussions.microsoft.com> a écrit dans
>> le message de news:
>> EDEBDB18-FF41-40BD-ADD6-95807F914450@microsoft.com...
>> > salut a tous,voila j'explique,g un prog qui me liste tout
>> > les ip des adresses
>> > de classe a,b,c.
>> > par exemple,je tape 85.22.55. adresse de classe c,et il
>> > me sort tout les ip
>> > du reseau 85.22.55. (de 0 a 255).
>> > je voudrais afficher seulement 30 ip mais qui ne suivent
>> > pas85.22.55.(1,5 ,
>> > 79,101, 103,119.....),quel boucle je dois utiliser pour
>> > faire cela vu que ce
>> > n'est pas des chiffres qui se suivent?
>> > merci de repondre
>>
>>
>>
Merci Patrice tu ma bien orienté g reussi grace a toi,mais g une autre
question maintenant que g les resultat que souhaité je voudrais les mettre
dans un fichier.ini
exemple: g la liste des 28 sous reseau et lorsque je clic sur un sous
reseau
il m'affiche les adresses de 0 à 255.
je voudrait que les resultat soit en meme temps copier sur le fichier.ini
(est ce deja possible).
merci d'avance
"Patrice Henrio" a écrit :Déjà remplace tous les
If <var> = true then
par
If <var> then
ça ne change pas le fonctionnement mais c'est plus propre (discussion
déjà
tenue sur ce forum).
Pour ton problème, il me semble qu'un tableau de 28 entiers (voire byte)
ferait l'affaire : dans ce tableau je mets les troisième nombre de
l'adresse
(puisque tu les connais)
Donc T(1 to 28) as byte
Ensuite, au lieu d'écrire une boucle do, tu peux utiliser un for next
For I=1 to 28
adr3=T(I)
Next I
> If Option4.Value = True Then
> 'je tape le premier champ
> Adr2Start = 22
> Adr2End = 22
> Adr3Start = 5
> Adr3End = 5
> Fin = 254
> End If
devient
If Option4.Value Then
'je tape le premier champ
Adr2Start = 22
Adr2End = 22
Adr3Start = T(1)
Adr3End = T(28)
Fin = 254
End If
> Loop
> Adr3Start = Adr3Start + 1
devient
If Option4.Value then
I=I+1
Adr3Start=T(I)
Else
Adr3Startr3Start+1
End If
Quelques conseils supplémentaires, les noms des variables doivent être
adaptées au problème, ici adr3Start n'est l'adresse de départ mais
l'adresse
courante qui parcourt la plage de Start à End, il serait donc plus
judicieux
d'écrire adr3 tout seul, voir définr un type adr de la façon suivante
type adresse
champ1 as byte
champ2 as byte
champ3 as byte
champ4 as byte
end type
Encore mieux un objet dont les propriétés permettraient de gérer
l'affichage
et le valeur
une propriété Adresse
AdresseIp(A as byte, B as byte, C as byte, D as byte) as double
AdresseIp=D+256*(C+256*(B+256*A))
fin
.... etc
"squat541" a écrit dans le message
de
news:
> Je vous remercie tous de vous intéresser à mon cas,c presque ca sauf
> que
> je
> veux pouvoir les choisirs et pas aleatoire sinon c une bonne idée.je
> vous
> met
> le prog du bouton commande qui vous aidera a me comprendre
> Private Sub Command1_Click()
> If Command1.Caption = "Analyse" Then
> Command1.Caption = "Stopper"
> Dim Depart As Integer 'variables utilisées pour la barre
> Dim Fin As Integer 'de défilement
> Dim Iptest As String
> Dim Result As String
> Dim Adr1Start As Integer
> Dim Adr1End As Integer
> Dim Adr2Start As Integer 'variables utilisées pour les
> Dim Adr2End As Integer 'adresses Ip
> Dim Adr3Start As Integer
> Dim Adr3End As Integer
> Dim Cpt As Integer 'Utilisée pour définir le dernier champ
> 'de l'adresse IP
> '********************
> '* initialistaion *
> '********************
> ListView1.ListItems.Clear
> Depart = 0
> If Option1.Value = True Then
> Adr2Start = 0
> Adr2End = 255
> Adr3Start = 0
> Adr3End = 255
> Fin = 766
> End If
> If Option2.Value = True Then
> Adr2Start = Val(Text4.Text)
> Adr2End = Val(Text4.Text)
> Adr3Start = 0
> Adr3End = 255
> Fin = 510
> End If
> If Option3.Value = True Then
> Adr2Start = Val(Text4.Text)
> Adr2End = Val(Text4.Text)
> Adr3Start = Val(Text5.Text)
> Adr3End = Val(Text5.Text
> Fin = 254
> End If
> If Option4.Value = True Then
> 'je tape le premier champ
> Adr2Start = 22
> Adr2End = 22
> Adr3Start = 5
> Adr3End = 5
> Fin = 254
> End If
> ProgressBar1.Visible = True
> ProgressBar1.Max = Fin
> ProgressBar1.Min = Depart
> Do Until Adr2Start > Adr2End
> 'boucle correspondant au deuxième champs de l'adresse IP
> Do Until Adr3Start > Adr3End
> 'Boucle correspondant au troisième champs de l'adresse IP
> 'réinitialisation de cpt
> Cpt = 1
> 'Cpt = 100
> Do Until Cpt > 254
> 'boucle correspondant au quetrième champs de l'adresse IP
> If Command1.Caption = "Analyse" Then Exit Sub
> 'Définition de l'adresse IP à tester
> Iptest = Text3.Text + "." & Adr2Start & "." &
> Adr3Start
> & "." & Cpt
> DoEvents
> Result = Echo(Iptest)
> With ListView1.ListItems.Add
> .Text = Iptest
> If Result = "Failure" Then
> .SubItems(2) = Result
> DoEvents
> Enregistrement Iptest, False
> Else
> '.SubItems(1) = GetHostName(ConvertIp(Iptest))
> 'Dim test As Double
> 'test = CDbl(ConvertIp(Iptest))
> ' On Error Resume Next
> '.SubItems(1) >> > gethostbyaddr(CLng(ConvertIp(Iptest)), 4, AF_INET)
> '.SubItems(1) >> > gethostbyaddr(ConvertIp(Iptest),
> 4, AF_INET)
> '.SubItems(1) >> > GetHostName(CLng(ConvertIp(Iptest)))
> DoEvents
> '.SubItems(1) = HostName(Iptest)
> .SubItems(1) = GetHostNameFromIP(.Text)
> DoEvents
> Enregistrement Iptest, True
> End If
> End With
> Cpt = Cpt + 1
> Depart = Depart + 1
> ProgressBar1.Value = Depart
> Loop
> Adr3Start = Adr3Start + 1
> Loop
> Adr2Start = Adr2Start + 1
> Loop
>
> ProgressBar1.Visible = False
>
> Else
> ProgressBar1.Visible = False
> Command1.Caption = "Analyse"
> End If
>
> End Sub
>
> Voila mon prob ce trouve a l'option 4,je cherche a modifier le 3eme
> champ
> en
> lui donnant 28 valeur mais que je ne modifie pas ces 28 reseau
> corresponde
> au
> reseau d'une entreprise,ce sont des adresses qui ne change pas.
> un exemple 85.22.5.(0à255)
> 85.22.10.(0à255)
> 85.22.18.(0à255)
> :
> :
> je modifie seulement le troisieme champ je choisie les 28 et ca reste
> toujours meme.si j'explique mal dit le moi je detaillerai plus.
>
>
> "LE TROLL" a écrit :
>
>> Oh là mes brave:
>>
>> L'exemple indique pour le 4eme groupe IP (1, 5, 79...), et
>> il dit "ip mais qui NE se suivent", donc c'est bien
>> traitement aléatoire qu'il faut mettre dans la boucle, en
>> vérifiant que l'aléatoire n'a pas causé de mitoyenneté d'IP,
>> moi y'en a m'essayer à ce jeu:
>> -----------------------
>>
>> Sub cree_ip()
>> Dim i As Long
>> Dim j As Long
>> Dim k As Long
>> Dim ip(256) As Long
>> Dim ip_ok(30) As Long ' ip retenues
>> Dim hasard As Long
>> Dim presente As String
>> Dim trans As Long
>> '
>> For i = 0 To 255 ' choix des ip
>> ip(i) = Format(i, "000")
>> Next i
>> Randomize
>> hasard = 0
>> '
>> For i = 1 To 30
>> Do While ip(hasard) = 256 ' = déjà choisit
>> hasard = Int((255 - 0 + 1) * Rnd + 0) ' pseudo
>> aléatoire
>> Loop
>> If hasard > 0 Then ip(hasard - 1) = 256 ' enlève - 1:
>> interdit mitoyenneté
>> ip(hasard) = 256 ' ip à ne plus sélectionner
>> ip_ok(i) = hasard ' ip sélectionnée
>> If hasard < 255 Then ip(hasard + 1) = 256 ' enlève + 1:
>> interdit mitoyenneté
>> Next i
>> '
>> For i = 1 To 30 ' tri croissant
>> For j = 1 To 30
>> For k = 1 To 30
>> If j = k Then Exit For
>> If ip_ok(j) < ip_ok(k) Then
>> trans = ip_ok(j)
>> ip_ok(j) = ip_ok(k)
>> ip_ok(k) = trans
>> Exit For
>> End If
>> Next k
>> Next j
>> Next i
>> '
>> presente = "" ' présentation
>> For i = 1 To 30
>> presente = presente & Format(ip_ok(i), "000") & vbLf
>> Next i
>> MsgBox presente, vbInformation
>> End Sub
>> -----------------------testé OK
>>
>>
>> "squat541" a écrit dans
>> le message de news:
>>
>> > salut a tous,voila j'explique,g un prog qui me liste tout
>> > les ip des adresses
>> > de classe a,b,c.
>> > par exemple,je tape 85.22.55. adresse de classe c,et il
>> > me sort tout les ip
>> > du reseau 85.22.55. (de 0 a 255).
>> > je voudrais afficher seulement 30 ip mais qui ne suivent
>> > pas85.22.55.(1,5 ,
>> > 79,101, 103,119.....),quel boucle je dois utiliser pour
>> > faire cela vu que ce
>> > n'est pas des chiffres qui se suivent?
>> > merci de repondre
>>
>>
>>