Dns.GetHostEntryAsync Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee wordt een hostnaam of IP-adres omgezet in een IPHostEntry exemplaar als asynchrone bewerking.
Overloads
| Name | Description |
|---|---|
| GetHostEntryAsync(IPAddress) |
Hiermee wordt een IP-adres omgezet in een IPHostEntry exemplaar als asynchrone bewerking. |
| GetHostEntryAsync(String) |
Hiermee wordt een hostnaam of IP-adres omgezet in een IPHostEntry exemplaar als asynchrone bewerking. |
GetHostEntryAsync(IPAddress)
Hiermee wordt een IP-adres omgezet in een IPHostEntry exemplaar als asynchrone bewerking.
public:
static System::Threading::Tasks::Task<System::Net::IPHostEntry ^> ^ GetHostEntryAsync(System::Net::IPAddress ^ address);
public static System.Threading.Tasks.Task<System.Net.IPHostEntry> GetHostEntryAsync(System.Net.IPAddress address);
static member GetHostEntryAsync : System.Net.IPAddress -> System.Threading.Tasks.Task<System.Net.IPHostEntry>
Public Shared Function GetHostEntryAsync (address As IPAddress) As Task(Of IPHostEntry)
Parameters
- address
- IPAddress
Een IP-adres.
Retouren
Het taakobject dat de asynchrone bewerking vertegenwoordigt. De Result eigenschap van het taakobject retourneert een IPHostEntry exemplaar met adresgegevens over de host die is opgegeven in address.
Uitzonderingen
address is null.
Er is een fout opgetreden bij het oplossen van het probleem address.
address is een ongeldig IP-adres.
Opmerkingen
Deze bewerking wordt niet geblokkeerd. Het geretourneerde Task<TResult> object wordt voltooid nadat het address is opgelost.
Met deze methode wordt een query uitgevoerd op een DNS-server voor de IP-adressen en aliassen die zijn gekoppeld aan een IP-adres.
IPv6-adressen worden gefilterd op basis van de resultaten van deze methode als op de lokale computer geen IPv6 is geïnstalleerd. Als gevolg hiervan is het mogelijk om een leeg IPHostEntry exemplaar terug te krijgen als alleen IPv6-resultaten beschikbaar zijn voor de address parameter.
De Aliases eigenschap van het IPHostEntry geretourneerde exemplaar wordt niet ingevuld door deze methode en is altijd leeg.
Note
Dit lid verzendt traceringsgegevens wanneer u netwerktracering inschakelt in uw toepassing. Zie Network Tracing in the .NET Framework voor meer informatie.
Deze methode slaat op in de taak die alle uitzonderingen voor niet-gebruik retourneert die de synchrone tegenhanger van de methode kan genereren. Als er een uitzondering wordt opgeslagen in de geretourneerde taak, wordt deze uitzondering gegenereerd wanneer de taak wordt gewacht. Gebruiksonderzondering, zoals ArgumentException, worden nog steeds synchroon gegenereerd. Zie de uitzonderingen die zijn gegenereerd door GetHostEntry(IPAddress)de opgeslagen uitzonderingen voor de opgeslagen uitzonderingen.
Van toepassing op
GetHostEntryAsync(String)
Hiermee wordt een hostnaam of IP-adres omgezet in een IPHostEntry exemplaar als asynchrone bewerking.
public:
static System::Threading::Tasks::Task<System::Net::IPHostEntry ^> ^ GetHostEntryAsync(System::String ^ hostNameOrAddress);
public static System.Threading.Tasks.Task<System.Net.IPHostEntry> GetHostEntryAsync(string hostNameOrAddress);
static member GetHostEntryAsync : string -> System.Threading.Tasks.Task<System.Net.IPHostEntry>
Public Shared Function GetHostEntryAsync (hostNameOrAddress As String) As Task(Of IPHostEntry)
Parameters
- hostNameOrAddress
- String
De hostnaam of het IP-adres dat moet worden omgezet.
Retouren
Het taakobject dat de asynchrone bewerking vertegenwoordigt. De Result eigenschap van het taakobject retourneert een IPHostEntry exemplaar met adresgegevens over de host die is opgegeven in hostNameOrAddress.
Uitzonderingen
De hostNameOrAddress parameter is null.
De lengte van hostNameOrAddress de parameter is groter dan 255 tekens.
Er is een fout opgetreden bij het oplossen van de hostNameOrAddress parameter.
De hostNameOrAddress parameter is een ongeldig IP-adres.
Opmerkingen
Deze bewerking wordt niet geblokkeerd. Het geretourneerde Task<TResult> object wordt voltooid nadat het hostNameOrAddress is opgelost.
Met deze methode wordt een query uitgevoerd op een DNS-server voor het IP-adres dat is gekoppeld aan een hostnaam of IP-adres.
Als een lege tekenreeks wordt doorgegeven als het hostNameOrAddress argument, retourneert deze methode de IPv4- en IPv6-adressen van de lokale host.
Als de hostnaam niet kan worden gevonden, wordt de uitzondering SocketException geretourneerd met de waarde 11001 (Windows Sockets-fout WSAHOST_NOT_FOUND). Deze uitzondering kan worden geretourneerd als de DNS-server niet reageert. Deze uitzondering kan ook worden geretourneerd als de naam geen officiële hostnaam of alias is, of deze kan niet worden gevonden in de database(s) die worden opgevraagd.
De ArgumentException uitzondering wordt ook geretourneerd als de hostNameOrAddress parameter de parameter bevat Any of IPv6Any.
Bij deze methode wordt ervan uitgegaan dat als een letterlijke IP-tekenreeks wordt doorgegeven aan de hostNameOrAddress parameter die de toepassing wil IPHostEntry retourneren met alle eigenschappenset. Deze eigenschappen omvatten de AddressList, Aliasesen HostName. Als gevolg hiervan vertoont de implementatie van deze methode het volgende gedrag wanneer een letterlijke IP-tekenreeks wordt doorgegeven:
De methode probeert het adres te parseren. Als de
hostNameOrAddressparameter een letterlijke waarde voor een juridische IP-tekenreeks bevat, slaagt de eerste fase.Een reverse lookup met behulp van het IP-adres van de letterlijke IP-tekenreeks wordt geprobeerd de hostnaam te verkrijgen. Dit resultaat wordt ingesteld als de HostName eigenschap.
De hostnaam van deze reverse lookup wordt opnieuw gebruikt om alle mogelijke IP-adressen te verkrijgen die zijn gekoppeld aan de naam en ingesteld als de AddressList eigenschap.
Voor een letterlijke IPv4-tekenreeks kunnen alle drie de bovenstaande stappen slagen. Maar het is mogelijk dat een verlopen DNS-record voor een IPv4-adres dat daadwerkelijk tot een andere host behoort, wordt geretourneerd. Dit kan ertoe leiden dat stap 3 mislukt en een uitzondering genereert (er is een DNS PTR-record voor het IPv4-adres, maar geen DNS A-record voor het IPv4-adres).
Voor IPv6 kan stap 2 hierboven mislukken, omdat de meeste IPv6-implementaties de omgekeerde record (PTR) niet registreren voor een IPv6-adres. Deze methode kan dus de letterlijke IPv6-tekenreeks retourneren als de FQDN-hostnaam (Fully Qualified Domain) in de HostName eigenschap.
De GetHostAddresses methode heeft een ander gedrag met betrekking tot letterlijke IP-gegevens. Als stap 1 hierboven slaagt (het parseert het als een IP-adres), wordt dat adres onmiddellijk als resultaat geretourneerd. Er is geen poging tot een reverse lookup.
IPv6-adressen worden gefilterd op basis van de resultaten van deze methode als op de lokale computer geen IPv6 is geïnstalleerd. Als gevolg hiervan is het mogelijk om een leeg IPHostEntry exemplaar terug te krijgen als alleen IPv6-resultaten beschikbaar zijn voor de hostNameOrAddress.parameter.
De Aliases eigenschap van het IPHostEntry geretourneerde exemplaar wordt niet ingevuld door deze methode en is altijd leeg.
Deze methode wordt geïmplementeerd met behulp van de naamomzettings-API's van het onderliggende besturingssysteem (zoals de Win32 API getaddrinfo op Windows en equivalente API's op andere platforms). Als een host in het hosts bestand wordt beschreven, worden het IP-adres of de adressen geretourneerd zonder een query uit te voeren op de DNS-server.
Note
Dit lid verzendt traceringsgegevens wanneer u netwerktracering inschakelt in uw toepassing. Zie Network Tracing in the .NET Framework voor meer informatie.
Deze methode slaat op in de taak die alle uitzonderingen voor niet-gebruik retourneert die de synchrone tegenhanger van de methode kan genereren. Als er een uitzondering wordt opgeslagen in de geretourneerde taak, wordt deze uitzondering gegenereerd wanneer de taak wordt gewacht. Gebruiksonderzondering, zoals ArgumentException, worden nog steeds synchroon gegenereerd. Zie de uitzonderingen die zijn gegenereerd door GetHostEntry(String)de opgeslagen uitzonderingen voor de opgeslagen uitzonderingen.