Holger Stehle

Softwareentwicklung und -architektur

« DNS-Auflösung durchführen

Das Domain Name System ist einer der wichtigsten Dienste in vielen IP-basierten Netzwerken, so insbesondere auch im Internet. Die Hauptaufgabe stellt dabei das Übersetzen von für die menschliche Nutzung praktischen Domains in technisch verarbeitbare IP-Adressen dar. Mit diesem Beitrag möchte ich jedoch gar nicht weiter auf diese Details eingehen, dazu lohnt sich stattdessen beispielsweise ein (empfehlenswerter) Blick in die Wikipedia.

Unser Hauptanliegen soll es nun sein, dieses System per C# zu befragen, um darauf aufbauend in einem separaten Artikel eine konkrete Anwendung umzusetzen. Praktischerweise liefert das .NET-Framework mit System.Net.Dns eine Klasse mit entsprechender Funktionalität – zugegebenermaßen aber nur mit geringem Funktionsumfang, weshalb zur professionellen Arbeit mit den verschiedenen Resource Records das Einbinden externer Programmbibliotheken sinnvoll sein kann. Die Anwendung der Basisfunktionalität ist jedoch denkbar einfach:

IPAddress[] hostAddressList = Dns.GetHostAddresses("coders-online.net");

foreach(IPAddress hostAddress in hostAddressList) {
    /**
     * hostAddress enthält nun jeweils eine IP-Adresse zur Domain;
     * im Falle dieses Beispiels den einzigen Eintrag 217.160.176.125.
    **/
}

Eine praktische Hilfsmethode ist außerdem Dns.GetHostName(), die den Namen des lokalen Rechners liefert. Das MSDN liefert wie üblich weitere Informationen zur Klasse, u. a. mit Hinweisen zu den asynchronen Methoden. Weiterhin interessant im System.Net-Namespace ist natürlich auch die Klasse IPAddress.