Récupération fiable d'adresses IPv4 locales en C#
Obtenir votre adresse IP locale est une tâche réseau courante en C#. Bien que des méthodes simples existent, elles renvoient souvent plusieurs adresses IP, certaines sans rapport avec votre réseau actuel. Cet article détaille une approche plus robuste.
Pourquoi les méthodes existantes ne suffisent pas
De nombreux exemples utilisent des requêtes DNS pour obtenir la liste des noms d'hôte et des adresses IP. Cela fonctionne souvent, mais peut échouer dans des configurations réseau spécifiques.
Assurer la connectivité réseau
Avant de récupérer l'IP, il faut confirmer une connexion réseau. La solution améliorée utilise NetworkInterface.GetIsNetworkAvailable()
pour cette vérification cruciale. Ce n'est que si cela revient true
que nous procédons.
Une approche plus ciblée
Au lieu de s'appuyer sur la résolution du nom d'hôte, la méthode améliorée parcourt directement les interfaces réseau. Il recherche spécifiquement les adresses IPv4 (InterNetwork
famille d'adresses) dans le AddressList
de chaque interface. Cela cible directement l'IP souhaitée, évitant toute ambiguïté.
Gestion gracieuse des erreurs
Le code inclut une gestion complète des exceptions. Si aucune adresse IPv4 n'est trouvée, une exception claire est levée, permettant une gestion appropriée des erreurs dans le code appelant. Cela évite les plantages inattendus.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!