Le problème, c'est que je ne veux pas préciser moi-même l'AdresseIP à réserver.
Mais je souhaite que mon "appli" (ou mon script) détecte automatiquement la 1ère adresse IP disponible (non encore réservée).
Voici le résultat de la commande "NETSH dhcp server scope Etendue show reservedip" qui permet de lister l'ensemble des adresses IP déjà réservées :
Le contexte de multi-etendue en cours a change pour la multi-etendue 10.56.0.0.
==================================
Adresse reservation - ID unique
==================================
Je redirige le résultat de cette commande dans le fichier "result_show_reservedip.txt".
A l'aide d'une boucle, je vais tester tout d'abord si la premiere Adresse IP de mon étendue est déjà réservée dans le DHCP.
SI l'adresse IP est déjà présente dans le fichier TEXTE, ALORS je teste l'adresse IP suivante.
SI l'adresse IP n'est pas présente dans le fichier TEXTE, ALORS je peux réserver cette adresse IP (en utilisant NETSH DHCP SERVER \\SERVEUR SCOPE ww.xx.yy.zz ADD RESERVEDIP AdresseIP AdresseMAC NomReservation Description)
Voici mon code :
-----------------------
Dim IPCentre, IP
Dim x, y
Dim FSO,Ftxt
Dim Chaine
Dim fichier_lecture
Set FSO = CreateObject("Scripting.FileSystemObject")
' ----- main prog
' Permet de générer les adresses IP possibles de 30.2 à 49.254
' (on ne distribue pas les adresses qui se terminent par 0, 1 et 255)
For x = 30 To 31
For y = 2 To 254
' Affichage de l'adresse IP complète 10.56.x.y
' (de 10.56.30.2 à 10.56.49.254)
IP = IPCentre & "." & x & "." & y
wscript.echo IP
' on parcourt chaque ligne du fichier texte
Set Ftxt = FSO.OpenTextFile(fichier_lecture, 1, true)
Do Until Ftxt.AtEndOfStream = true
Chaine = Ftxt.Readline()
If InStr(1, Chaine, IP) > 1 Then
wscript.echo "L'adresse IP" & IP & "est déjà utilisée"
End if
Loop
Ftxt.Close
Next
Next
----------------
QUESTION : comment "détecter" que l'adresse IP est disponible (pas encore réservée).
Actuellement, même lorsque l'adresse IP disponible est trouvée, le script continue de chercher si d'autres adresses IP sont disponibles, ce que je ne souhaite pas bien evidemment.
Dès que l'adresse IP dispo est trouvée, je souhaite lancer une commande du type :
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 11 juil. 2006 à 07:24
Bonjour,
Désolé, je n'ai pas répondu à ton précédent post.
Par contre, il n'est pas nécessaire de poster la même question x fois !!!!
infomsg_VBS-COMPARAISON-FICHIERS-LIGNE-LIGNE_774801.aspx est tjrs open.
Avec la synthaxe
Do Until Ftxt.AtEndOfStream = true
Chaine = Ftxt.Readline()
je ne suis pas certain de l'open et read du fichier .txt
J'ai essayé avec un Do While et même erreur (objet requis).
AdilELHASSOUNI
Messages postés145Date d'inscriptionvendredi 11 janvier 2002StatutMembreDernière intervention19 juin 20071 11 juil. 2006 à 10:05
Salut
Je crois (si j'ai bien compris le probleme) que tu dois changer un peu de logique et utiliser une variable booleenne permettant de verifier si la valeur à recherchée a été trouvée. Et pour ceci Essaye.
Touvee = Flase
Do Until Ftxt.AtEndOfStream = true
Chaine = Ftxt.Readline()
If InStr(1, Chaine, IP) > 1 Then
trouvee = true
End if
Loop
if trouvee then
wscript.echo "L'adresse IP" & IP & "est déjà utilisée"
else
' le code que tu aime executer dans le cas ou l'IP n'existe pas
endif