Question Comparer les Ip de deux serveurs...

Plus d'informations
il y a 4 ans 11 mois #28967 par Agrougroum00
Bonjour à tous,

Je vous expose mon problème.

J'ai un formulaire qui demande de saisir deux noms de serveurs afin de lancer une copie de données, un serveur Source, et un serveur Cible.

Je fais un test de ping afin de voir si les machines sont bien en ligne avec \"Test-Connection\"

J'aimerai pousser le truc afin de vérifier s'ils sont sur le même range IP, afin de vérifier que la copie se fait bien en LAN...

Je récupère les IP :
[code:1]
$IPSource = Test-Connection -computername $textBox_Serv_SOURCE.text | Select IPV4Address
$IPCible = Test-Connection -computername $textBox_Serv_CIBLE.text | Select IPV4Address
[/code:1]

Mais pour comparer qu'elles sont bien sur le meme sous-réseau, donc sur les 3 premiers octets de l'adresse, je ne sais pas par quel bout prendre le truc...

Pouvez-vous m'aider?
Merci :)

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

Plus d'informations
il y a 4 ans 11 mois #28968 par Laurent Dardenne
Salut,
peut être porter ce code ou le compiler à la volée (Add-Type).

[code:1]
$Code=@'
public class IPAddressExtension {
public static bool CheckWhetherInSameNetwork(string firstIP, string subNet, string secondIP )
{
uint subnetmaskInInt = ConvertIPToUint(subNet);
uint firstIPInInt = ConvertIPToUint(firstIP);
uint secondIPInInt = ConvertIPToUint(secondIP);
uint networkPortionofFirstIP = firstIPInInt & subnetmaskInInt;
uint networkPortionofSecondIP = secondIPInInt & subnetmaskInInt;
if (networkPortionofFirstIP == networkPortionofSecondIP)
return true;
else
return false;
}

public static uint ConvertIPToUint(string ipAddress)
{
System.Net.IPAddress iPAddress = System.Net.IPAddress.Parse(ipAddress);
byte[] byteIP = iPAddress.GetAddressBytes();
uint ipInUint = (uint)byteIP[3] << 24;
ipInUint += (uint)byteIP[2] << 16;
ipInUint += (uint)byteIP[1] << 8;
ipInUint += (uint)byteIP[0];
return ipInUint;
}
}
'@
Add-type $code

[IPAddressExtension]::CheckWhetherInSameNetwork('1.2.3.4','255.255.255.0','1.2.3.5')
#true
[IPAddressExtension]::CheckWhetherInSameNetwork('1.2.3.4','255.255.255.0','1.2.4.5')
#false
[/code:1]<br><br>Message édité par: Laurent Dardenne, à: 29/05/19 14:22

Tutoriels PowerShell

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

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