Heim > Backend-Entwicklung > C++ > Wie kann ich meine öffentliche IP-Adresse programmgesteuert abrufen?

Wie kann ich meine öffentliche IP-Adresse programmgesteuert abrufen?

Linda Hamilton
Freigeben: 2025-01-18 11:07:12
Original
831 Leute haben es durchsucht

How Can I Retrieve My Public IP Address Programmatically?

Programmgesteuerter Zugriff auf Ihre öffentliche IP-Adresse

Die öffentliche IP-Adresse Ihres Routers programmgesteuert zu ermitteln, kann schwierig sein. In diesem Artikel werden verschiedene Methoden untersucht, um dies zu erreichen, ohne auf externe Dienste angewiesen zu sein.

C#-Implementierung (asynchron)

In diesem C#-Beispiel werden die Klasse HttpClient und eine asynchrone Methode zum effizienten Abrufen von IP-Adressen verwendet:

<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>
Nach dem Login kopieren

C#-Implementierung (mit WebClient – ​​weniger bevorzugt)

Obwohl die Klasse WebClient funktionsfähig ist, gilt sie als veraltet. Hier ist ein einfacheres Beispiel zum Vergleich:

<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>
Nach dem Login kopieren

Befehlszeilenalternativen

Für einen schnelleren Abruf sollten Sie diese Befehlszeilenoptionen in Betracht ziehen:

  • Linux und Windows: wget -qO- http://bot.whatismyipaddress.com
  • Curl verwenden: curl http://ipinfo.io/ip

Diese Methoden bieten verschiedene Ansätze, um Ihre öffentliche IP-Adresse programmgesteuert zu erhalten. Für die moderne C#-Entwicklung wird die asynchrone HttpClient-Methode empfohlen.

Das obige ist der detaillierte Inhalt vonWie kann ich meine öffentliche IP-Adresse programmgesteuert abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage