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>
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>
Befehlszeilenalternativen
Für einen schnelleren Abruf sollten Sie diese Befehlszeilenoptionen in Betracht ziehen:
wget -qO- http://bot.whatismyipaddress.com
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!