Lors de la gestion du réseau ou du débogage d'applications, il est souvent nécessaire d'obtenir l'adresse IP du serveur. Cet article vise à clarifier la syntaxe et à fournir une manière optimisée de récupérer ces informations.
Pour déterminer l'adresse IP externe de votre ordinateur (visible sur Internet), utilisez le code suivant :
<code class="language-csharp">string externalIP = new WebClient().DownloadString("https://ipv4.icanhazip.com/");</code>
Ce code utilise le service "iCanHazIP" pour obtenir l'adresse IP publique du serveur.
Pour récupérer l'adresse IP interne du serveur (au sein du réseau local), utilisez la technique suivante :
<code class="language-csharp">string localIP = Dns.GetHostEntry(Dns.GetHostName()).AddressList.Where(ip => ip.AddressFamily == AddressFamily.InterNetwork).FirstOrDefault()?.ToString();</code>
Ce code parcourt la liste des adresses IP associées au nom d'hôte du serveur et sélectionne l'adresse correspondant à la famille d'adresses IPv4.
Le code fourni dans la question est une approche valable, mais sa lisibilité et son efficacité pourraient être améliorées. La version modifiée suivante intègre ces améliorations :
<code class="language-csharp">string localIP = null; var host = Dns.GetHostEntry(Dns.GetHostName()); foreach (var ip in host.AddressList) { if (ip.AddressFamily == AddressFamily.InterNetwork) { localIP = ip.ToString(); break; } }</code>
Cette version utilise une structure de boucle plus claire et gère la situation où FirstOrDefault()
peut renvoyer null, évitant ainsi les exceptions potentielles. Il parcourt directement la liste d'adresses IP et quitte la boucle immédiatement après avoir trouvé la première adresse IPv4, améliorant ainsi l'efficacité.
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!