Maison > développement back-end > C++ > Comment obtenir efficacement l'adresse IP interne et externe d'un serveur en C# ?

Comment obtenir efficacement l'adresse IP interne et externe d'un serveur en C# ?

DDD
Libérer: 2025-01-26 06:06:08
original
447 Les gens l'ont consulté

How to Efficiently Get a Server's Internal and External IP Address in C#?

Obtenez efficacement les adresses IP internes et externes du serveur en C#

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.

Syntaxe pour obtenir une adresse IP externe

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>
Copier après la connexion

Ce code utilise le service "iCanHazIP" pour obtenir l'adresse IP publique du serveur.

Syntaxe pour obtenir l'adresse IP interne

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>
Copier après la connexion

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.

Analyse du code précédent

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal