Comment analyser une adresse IP de la chaîne à un uint valeur en C#?
Je suis en train d'écrire le code C# qui utilise windows IP Helper API. L'une des fonctions que j'essaie d'appeler "GetBestInterface" qui prend un "uint" la représentation de la propriété intellectuelle. Ce dont j'ai besoin est d'analyser une représentation textuelle de la propriété intellectuelle pour créer le "uint" dans la représentation.
J'ai trouvé quelques exemples via Google, à l'instar de cette une ou cette une, mais je suis assez sûr il doit y avoir un moyen standard pour cela .NET. Seul problème, je ne trouve pas cette façon standard. IPAddress.Analyser semble être dans la bonne direction, mais il ne fournit pas un moyen de faire une "uint" la représentation...
Il est aussi un moyen de faire cela à l'aide d'IP Helper, à l'aide de la ParseNetworkString, mais encore une fois, je préfère utiliser .NET - je crois que le moins que je peux compter sur pInvoke le mieux.
Donc, quelqu'un connaît un moyen standard pour ce faire, dans .NET?
- double possible de Comment faire pour convertir une adresse IPv4 en entier en C# comme nt. souligné?
Vous devez vous connecter pour publier un commentaire.
MSDN dit que IPAddress.L'adresse de la propriété (qui renvoie la représentation numérique de l'adresse IP) est obsolète et vous devez l'utiliser GetAddressBytes méthode.
Vous pouvez convertir une adresse IP à valeur numérique à l'aide de code suivant:
EDIT:
Comme d'autres commentateurs ont remarqué code susmentionné est pour les adresses IPv4 uniquement.
Adresse IPv6 est de 128 bits, donc il est impossible de convertir de 'uint" comme la question de l'auteur voulais.
Ne devrait-elle pas être:
?
Cette solution est plus facile à lire qu'un manuel de décalage de bits.
Voir Comment faire pour convertir une adresse IPv4 en entier en C#?
Aussi, vous devriez vous rappeler que IPv4 et IPv6 sont de longueurs différentes.
Octet de l'arithmétique est déconseillée, car elle s'appuie sur toutes les adresses ip étant 4-octet ceux.
Sortie sera
192
168
1
1
Je n'ai jamais trouvé une solution propre (c'est à dire: une classe /méthode dans le .NET Framework) pour ce problème. Je suppose que ce n'est tout simplement pas disponible, sauf les solutions /les exemples que vous avez fourni ou Aku exemple. 🙁
Solution complète:
Inverser l'ordre des octets:
Vous pouvez tester ici:
https://www.browserling.com/tools/dec-to-ip
http://www.smartconversion.com/unit_conversion/IP_Address_Converter.aspx
http://www.silisoftware.com/tools/ipconverter.php