Question [RESOLU] Proriété unique et propriété non unique

Plus d'informations
il y a 9 ans 5 mois #22800 par Marc
Bonjour à tous,
je suis novice en programmation et vous remercie d'avance pour l'attention que vous porterez à mon problème.

j'ai un objet de cette forme:

ServerName IPAddress Port



----
server1 10.10.10.10 443
server1 10.10.10.10 80
autreserver 11.11.11.11 443
autreserver 11.11.11.11 502


Et je voudrais obtenir une chaine de caractère de cette forme:

10.10.10.10/443,80
11.11.11.11/443,502


Donc, pour chaque IP récupérer les ports qui lui sont associé et n'en faire qu'une ligne.
Dit comme cela, ça n'a l'aire de rien....
Merci pour votre aide.<br><br>Message édité par: marcci, à: 15/12/16 13:30

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 9 ans 5 mois #22807 par crogiez
x<br><br>Message édité par: crogiez, à: 15/12/16 12:17

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 9 ans 5 mois #22808 par crogiez
[code:1]
#ServerName IPAddress Port
#

----
#server1 10.10.10.10 443
#server1 10.10.10.10 80
#autreserver 11.11.11.11 443
#autreserver 11.11.11.11 502

#je force les adresses IP de façon non triée
$tabserv1=@()
$tabserv1 += New-Object PsObject -Property @{
'ServerName' = \&quot;server1\&quot;
'IPAddress' = \&quot;11.11.11.11\&quot;
'Port' = \&quot;443\&quot;
}
$tabserv1 += New-Object PsObject -Property @{
'ServerName' = \&quot;server1\&quot;
'IPAddress' = \&quot;11.11.11.11\&quot;
'Port' = \&quot;502\&quot;
}
$tabserv1 += New-Object PsObject -Property @{
'ServerName' = \&quot;server1\&quot;
'IPAddress' = \&quot;10.10.10.10\&quot;
'Port' = \&quot;443\&quot;
}
$tabserv1 += New-Object PsObject -Property @{
'ServerName' = \&quot;server1\&quot;
'IPAddress' = \&quot;10.10.10.10\&quot;
'Port' = \&quot;80\&quot;
}
$tabserv1

#tri des champs
$tabserv2=$tabserv1 | select -Property ServerName,IPAddress,Port
$tabserv2 | ft -AutoSize

#pour etre sur que cest trie par IP+Port
$tabserv3=$tabserv2 | sort -Property IPAddress,Port
$tabserv3 | ft -AutoSize

#80 est apres 443 en chaine ascii

#calcul IP \ ports
$tabIPP=@()

$oldIP=\&quot;\&quot;
$tabserv3|%{
$_.ServerName
$_.IPAddress
$_.Port
if($_.IPAddress -ne $oldIP){
#first or new serveur
if($oldIP -eq \&quot;\&quot;«»){
#first
$oldIP=$_.IPAddress
$l=$oldIP+\&quot;\\&quot;+$_.Port
$l
}else{
\&quot;fin old ip\&quot;
$l
$tabIPP += New-Object PsObject -Property @{'IP+Ports' = $l}
\&quot;suivant\&quot;
$oldIP=$_.IPAddress
$l=$oldIP+\&quot;\\&quot;+$_.Port
$l
}

}else{
#meme IP
$l=$l+\&quot;,\&quot;+$_.Port
$l
}
}
\&quot;dernier\&quot;
$l
$tabIPP += New-Object PsObject -Property @{'IP+Ports' = $l}

$tabIPP


[/code:1]

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 9 ans 5 mois #22809 par crogiez

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 9 ans 5 mois #22810 par crogiez

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 9 ans 5 mois #22811 par Marc
Oui, c'est ça.
Décortiqué et adapté à mon script en cours ça marche impeccable.

Un énorme merci crogiez.

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.042 secondes
Propulsé par Kunena