Question
Comparer les Ip de deux serveurs...
- Agrougroum00
- Auteur du sujet
- Hors Ligne
- Membre junior
Réduire
Plus d'informations
- Messages : 27
- Remerciements reçus 0
il y a 4 ans 9 mois #28967
par Agrougroum00
Comparer les Ip de deux serveurs... a été créé 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
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.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6300
- Remerciements reçus 68
il y a 4 ans 9 mois #28968
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Comparer les Ip de deux serveurs...
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
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.069 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Comparer les Ip de deux serveurs...