WSH Shell : Trier des adresses IP
Écrit par Gilles LAURENT   
30-06-2007

WSH Shell : Trier des adresses IP

Une question d'un usager sur le forum Powershell (US) était de savoir comment trier une liste d'adresses IP en Powershell. Fil très intéressant car il y eut de multiples réponses visant à optimiser le code ... Un véritable concours en quelque sorte portant sur le nombre de caractères utilisé pour accomplir cette opération ! Vous pouvez retrouver ce fil ici :

Cela m'a donc donné l'idée de tenter ma chance en VBScript avec la console WSH Shell. Dans cette exemple, j'ai au préalable chargé une variable de type tableau avec les adresses IP à trier via la procédure Shell.Include. Le fichier "ips.vbs" permet simplement de déclarer la variable ips de type tableau et de définir son contenu :

--- Coupez ici : ips.vbs ---
ips=array("124.5.6.8","2.4.53.233","12.24.3.78","234.2.5.7","1.5.5.5")
--- Coupez ici : ips.vbs ---

Dans une prochaine version de la console WSH Shell, je pense qu'il sera utile d'intégrer une fonction du genre GetFileContent (strFileName) permettant de charger le contenu d'un fichier dans une variable de type tableau ;-)

Microsoft (R) Windows Script Host Version 5.6                                   
Copyright (C) Microsoft Corporation 1996-2001. Tous droits réservés.            
                                                                                
 _ _ _  ___  _ _   ___  _         _  _                                          
| | | |/ __>| | | / __>| |_  ___ | || |                                         
| | | |\__ \|   | \__ \| . |/ ._>| || |                                         
|__/_/ <___/|_|_| <___/|_|_|\___.|_||_|                                         
                                                                                
Windows Script Host (WSH) Shell v1.0.0.4 starting ...                           
                                                                                
Registering components ...                                                      
                                                                                
Loading external modules ...                                                    
  Loading _wshWmi.inc ...                                                       
                                                                                
Welcome ...                                                                     
It's 30/06/2007 17:15:33 and WSH Shell is up !                                  
                                                                                
Ready.                                                                          
                                                                                
WSH D:\Test> ' chargement des adresses IP                                       
WSH D:\Test> include "d:\test\ips.vbs": echo $(ips)                             
124.5.6.8                                                                       
2.4.53.233                                                                      
12.24.3.78                                                                      
234.2.5.7                                                                       
1.5.5.5                                                                         
WSH D:\Test> ' affichage sous forme de tableau des adresses IP triées           
WSH D:\Test> strTableFieldSep="|":dim t():redim t(ubound(ips)+1):t(0)="IPS      
|sN":i=1:% ip in ips:s=0:e=3:% n in split(ip,"."):s=s+n*256^e:e=e-1:}:t(i)=ip&"|
"&s:i=i+1:}:ft t,"s","","IP"                                                    
                                                                                
IP                                                                              
--                                                                              
1.5.5.5                                                                         
2.4.53.233                                                                      
12.24.3.78                                                                      
124.5.6.8                                                                       
234.2.5.7                                                                       
                                                                                
WSH D:\Test>                                                                    

Dernière mise à jour : ( 30-06-2007 )