comparer deux ip avec C#
Comment je peux comparer les deux adresses IP?
string ip1 = "123.123.123.123";
string ip2 = "124.124.124.124";
J'ai besoin de quelques comme ceci:
if(ip1 == ip2)
{
//true
}
- Comment se fait le code que tu viens de poster ne pas répondre à vos besoins?
- parce que la même adresse IP peut avoir une chaîne de la représentation, puisque le nombre peut être légalement représenté dans les deux hex et de la base 10.
- Essayez ceci:
ping 2130706433
.
Vous devez vous connecter pour publier un commentaire.
Il semble Système de.Net.IPAddress définit ses propres est Égale à remplacer, donc cela devrait fonctionner:
Le type
IPAddress
dans la BCL soutient l'égalité et peut être utilisé à cette fin.Plusieurs personnes ont demandé pourquoi un droit de comparaison de chaîne n'est pas suffisant. La raison en est qu'une adresse IP peut être représentée dans la base 10 et la notation hexadécimale. Donc la même adresse IP peut avoir plus de 1 représentation sous forme de chaîne.
Par exemple
return LeftIP.Equals(rightIP);
::
là.IPAddress.Parse
prend en charge. Je ne suis pas sûr de l'officiel IP standard sur le dessus de ma tête bien.Découvrez méthode Equals sur
System.Net.IPAddress
La
IPAddress
classe (System.Net) a un substituée méthode Equals qui permettra de comparer les adresses, pas les instances de l'objet, qui est ce que vous voulez. Comparaison de chaînes de caractères ici peut être dangereux car il est possible que les adresses IP à avoir plus d'une représentation sous forme de chaîne.http://msdn.microsoft.com/en-us/library/system.net.ipaddress.equals%28v=VS.71%29.aspx
Vous pouvez utiliser cette classe pour comparer IpAddress :
http://www.codeproject.com/Articles/26550/Extending-the-IPAddress-object-to-allow-relative-c