Maison >développement back-end >C++ >Comment puis-je récupérer efficacement l'adresse IP de mon serveur ?

Comment puis-je récupérer efficacement l'adresse IP de mon serveur ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-26 06:12:08800parcourir

How Can I Efficiently Retrieve My Server's IP Address?

Accéder à l'adresse IP de votre serveur : une approche simplifiée

Les programmeurs doivent fréquemment déterminer l'adresse IP du serveur exécutant leur application. Bien que les méthodes existantes fonctionnent, une solution plus efficace et plus concise existe.

Une méthode courante utilise Dns.GetHostEntry, récupère l'entrée de l'hôte, puis parcourt sa liste d'adresses pour trouver une adresse IPv4. C'est moins efficace qu'une approche directe utilisant la classe Socket.

Voici une méthode supérieure :

<code class="language-csharp">using System.Net;

// ...

// Create a UDP socket connected to the local host
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);

// Connect to localhost (any IP, port 0)
socket.Connect(new IPEndPoint(IPAddress.Any, 0));

// Extract the IP address from the local endpoint
localIP = socket.LocalEndPoint.ToString().Split(':')[0];

// Close the socket
socket.Close();</code>

Ce code crée un socket UDP et le connecte à l'hôte local. La propriété LocalEndPoint fournit directement l'adresse IP et le port locaux. Le fractionnement de la chaîne au niveau des deux points (':') isole l'adresse IP. Cela évite la surcharge de la méthode Dns.GetHostEntry et de son itération ultérieure, ce qui donne une solution plus efficace et plus lisible.

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!

Déclaration:
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