Maison >développement back-end >C++ >Comment puis-je récupérer mon adresse IP publique par programme ?
Accès à votre adresse IP publique par programmation
Déterminer l'adresse IP publique de votre routeur par programmation peut être délicat. Cet article explore plusieurs méthodes pour y parvenir sans recourir à des services externes.
Implémentation C# (asynchrone)
Cet exemple C# utilise la classe HttpClient
et une méthode asynchrone pour une récupération efficace des adresses IP :
<code class="language-csharp">using System; using System.Net.Http; using System.Threading.Tasks; using System.Net; public class ExternalIP { public static async Task<IPAddress> GetExternalIpAddressAsync() { string externalIpString; try { using (var client = new HttpClient()) { externalIpString = await client.GetStringAsync("http://icanhazip.com"); } } catch (Exception ex) { Console.WriteLine($"Error retrieving IP: {ex.Message}"); return null; } externalIpString = externalIpString.Replace("\r\n", "").Replace("\n", "").Trim(); if (IPAddress.TryParse(externalIpString, out var ipAddress)) { return ipAddress; } return null; } public static void Main(string[] args) { Task<IPAddress> externalIpTask = GetExternalIpAddressAsync(); externalIpTask.Wait(); IPAddress externalIp = externalIpTask.Result ?? IPAddress.Loopback; Console.WriteLine(externalIp); } }</code>
Implémentation C# (utilisation de WebClient - Moins préféré)
Bien que fonctionnelle, la classe WebClient
est considérée comme obsolète. Voici un exemple plus simple à titre de comparaison :
<code class="language-csharp">using System; using System.Net; public class ExternalIP { public static void Main(string[] args) { string externalIpString; try { using (var client = new WebClient()) { externalIpString = client.DownloadString("http://icanhazip.com"); } } catch (Exception ex) { Console.WriteLine($"Error retrieving IP: {ex.Message}"); return; } externalIpString = externalIpString.Replace("\r\n", "").Replace("\n", "").Trim(); IPAddress externalIp = IPAddress.Parse(externalIpString); Console.WriteLine(externalIp); } }</code>
Alternatives en ligne de commande
Pour une récupération plus rapide, envisagez ces options de ligne de commande :
wget -qO- http://bot.whatismyipaddress.com
curl http://ipinfo.io/ip
Ces méthodes proposent diverses approches pour obtenir par programme votre adresse IP publique. La méthode asynchrone HttpClient
est recommandée pour le développement C# moderne.
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!