Logo du forum
 

Forum TTH-News

| Inscription | | Recherche | | FAQ | | Accueil | | Liste des membres |
| Calendrier |
 
Vous n'êtes pas identifié! [Connexion] ou [Inscription] Forum » Programmation » [VB / VBA / VBS] » [VBS] "Parser" un fichier (recherche d'une chaine de caractères)
Login Mot de passe

2 visiteurs sur ce topic (0 membre(s), 2 invité(s) )


Auteur
Sujet : [VBS] "Parser" un fichier (recherche d'une chaine de caractères)
parker13
Nouveau membre
Membre # 26490

 


Messages :
5 (0 par jour)




Message du 06-07-2006 @ 14:44   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   


Je dispose d'un DHCP "statique". Seuls les ordinateurs dont les Adresses MAC sont connues (renseignées dans le DHCP) recevront une adresse IP via le DHCP.

Je dois créer un script qui effectue la réservation d'une adresse IP dans le DHCP.

Il semble que la commande NETSH puisse remplir cette fonction.

netsh dhcp server scope Etendue show reservedip

===============================

Adresse reservation - ID unique

===============================

10.xx.yy.zz - 00-06-1b-d1-69-4e-

10.xx.yy.zz - 00-02-e3-52-f8-45-

10.xx.yy.zz - 00-14-38-0a-f7-e6-

Nb d'adresses IP reservees : 3 dans l'etendue

---------------------------------------------------------------------------------------------

Le résultat de la commande ci-dessus liste toutes les adresses IP réservées dans l'étendue du DHCP, mais les réservations apparaissent dans l'ordre de leur création (donc dans le "désordre").

Je dois donc déterminer quelle est la première adresse IP qui n'a pas encore été réservée.

Je pense donc que mon "appli" (ou script) doit "parser" entièrement cette liste, jusqu'à temps qu'une adresse IP soit trouvée (disponible).

Comment faire ? (mes adresses IP ont le format suivant : ww.xx.yy.zzz soit entre 10 et 12 caractères)

Il me restera plus qu'à lancer la commande "netsh dhcp server scope Etendue add reservedip AdresseIP AdresseMAC NomOrdinateur Description dhcp" pour faire la réservation d'une adresse IP via un script.



Une personne m'a invité à suivre la méthode suivante :

1) lire le fichier qui contient la liste des adresses IP réservées dans l'étendue du DHCP.
2) créer un tableau avec les adresses lues
3) classer le tableau

Puis pour chaque adresses possibles, regarder si elle est dans le tableau.
On sort de la boucle des que l'on tombe sur une adresse dispo.

Est-ce la bonne manière de procéder ?

Si oui, quelles commandes VBS dois-je utiliser pour ces différentes étapes ?

Merci d'avance
- Haut de page -
soulmanto
Codeur du forum
Membre # 5373

 Avatar du membre
Lieu : Lille

Messages :
13839 (2.51 par jour)


Score :

Message du 06-07-2006 @ 16:10   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

La manière de procéder est la bonne. Pour ce qui est du code VBS, je suis pas un expert donc je laisserai ça à d'autres. Simplement, tu peux utiliser la lecture ligne par ligne du fichier et analyser le contenu. L'idéal serait une expression régulière qui servirait de masque à la reconnaissance des IPs.

Pour la lecture du fichier, un objet FSO (FileSystemObject) sera nécessaire. La création du tableau est simplement une déclaration de variable :

Code :


Dim monTableau() As String



Enfin pour le tri de tableau, la fonction n'existe pas. Tu peux coder ta propre fonction en t'inspirant de celle que j'ai trouvé sur le net, ci-dessous:

Code :


function tri(tab, nb)
   'déclaration des variables
   '====================
   Dim deb '** indice de début du tableau
   Dim fin '** indice de fin
   Dim stock '** variable d échange
   Dim i1 '** indice de parcours du tableau
   Dim i2 '** indice de parcours du tableau
   Dim cpt '** compteur
   
   deb = Lbound(tab)'** deb reçoit le premier indice
   fin = Ubound(tab)'** fin reçoit le dernier indice
   
   'boucle servant à échanger les valeurs si besoin afin de trier le tableau en ordre alpha
   '======================================
   For i1 = deb To fin - 1
      cpt = i1 + 1
      
      For i2 = cpt To fin
         If tab(i1) > tab(i2) Then
            stock = tab(i1)
            tab(i1) = tab(i2)
            tab(i2) = stock
            cpt = cpt + 1
         End If
      Next
   Next

End Function




----------
Desktop : Core i7 2600 | Gigabyte GA-Z68MA-D2H-B3 | 8 Go DDR3 PC10600 | SSD UltraPlus 128 Go / HDD 500 Go / 1 To | Sapphire R9 280 3 Go | CoolerMaster RC690 | Windows 7
Asus MemoPad 10

Stromille powered !!!
- Haut de page -


Aller dans le forum :  

Plan du forum | Contacter l'administrateur

Powered by SoulBB 3.0.1
© Soulmanto, 2003-2010

Valid XHTML 1.0 Transitional

Page générée en 0.023 secondes