Taal

Uri.Host Eigenschap

Definitie

Hiermee haalt u het hostonderdeel van dit exemplaar op.

public:
 property System::String ^ Host { System::String ^ get(); };
public string Host { get; }
member this.Host : string
Public ReadOnly Property Host As String

Waarde van eigenschap

De hostnaam. Dit is meestal de DNS-hostnaam of het IP-adres van de server.

Uitzonderingen

Dit exemplaar vertegenwoordigt een relatieve URI en deze eigenschap is alleen geldig voor absolute URI's.

Voorbeelden

In het volgende voorbeeld wordt de hostnaam (www.contoso.com) van de server naar de console geschreven.

Uri baseUri = new Uri("http://www.contoso.com:8080/");
Uri myUri = new Uri(baseUri, "shownew.htm?date=today");

Console.WriteLine(myUri.Host);
let baseUri = Uri "http://www.contoso.com:8080/"
let myUri = Uri(baseUri, "shownew.htm?date=today")

printfn $"{myUri.Host}"
Dim baseUri As New Uri("http://www.contoso.com:8080/")
Dim myUri As New Uri(baseUri,"shownew.htm?date=today")
       
Console.WriteLine(myUri.Host)

In het volgende voorbeeld ziet u hoe Host en IdnHost verschillen tussen DNS-, IDN-, IPv4- en IPv6-invoer:

// Demonstrate differences between Host, IdnHost, and DnsSafeHost.

// Example 1: Regular hostname (ASCII).
Console.WriteLine("Example 1: Regular ASCII hostname");
Uri uri1 = new Uri("http://www.contoso.com:8080/path");
Console.WriteLine($"  Host:        {uri1.Host}");        // www.contoso.com
Console.WriteLine($"  IdnHost:     {uri1.IdnHost}");     // www.contoso.com
Console.WriteLine($"  DnsSafeHost: {uri1.DnsSafeHost}"); // www.contoso.com
Console.WriteLine();

// Example 2: International domain name (non-ASCII).
Console.WriteLine("Example 2: International domain name");
Uri uri2 = new Uri("http://münchen.de/path");
Console.WriteLine($"  Host:        {uri2.Host}");        // münchen.de (original)
Console.WriteLine($"  IdnHost:     {uri2.IdnHost}");     // xn--mnchen-3ya.de (punycode)
Console.WriteLine($"  DnsSafeHost: {uri2.DnsSafeHost}"); // münchen.de or xn--mnchen-3ya.de, depending on configuration.
Console.WriteLine();

// Example 3: International domain name already in punycode (encoded) form.
Console.WriteLine("Example 3: Already-encoded international domain name");
Uri uri2Encoded = new Uri("http://xn--mnchen-3ya.de/path");
Console.WriteLine($"  Host:        {uri2Encoded.Host}");        // xn--mnchen-3ya.de (as provided)
Console.WriteLine($"  IdnHost:     {uri2Encoded.IdnHost}");     // xn--mnchen-3ya.de (already punycode)
Console.WriteLine($"  DnsSafeHost: {uri2Encoded.DnsSafeHost}"); // xn--mnchen-3ya.de
Console.WriteLine();

// Example 4: IPv6 address without zone ID.
Console.WriteLine("Example 4: IPv6 address without zone ID");
Uri uri3 = new Uri("http://[::1]:8080/path");
Console.WriteLine($"  Host:        {uri3.Host}");        // [::1] (with brackets)
Console.WriteLine($"  IdnHost:     {uri3.IdnHost}");     // ::1 (without brackets)
Console.WriteLine($"  DnsSafeHost: {uri3.DnsSafeHost}"); // ::1 (without brackets)
Console.WriteLine();

// Example 5: IPv6 link-local address with zone ID.
Console.WriteLine("Example 5: IPv6 link-local address with zone ID");
Uri uri4 = new Uri("http://[fe80::1%10]:8080/path");
Console.WriteLine($"  Host:        {uri4.Host}");        // [fe80::1] (with brackets, no zone ID)
Console.WriteLine($"  IdnHost:     {uri4.IdnHost}");     // fe80::1%10 (without brackets, with zone ID)
Console.WriteLine($"  DnsSafeHost: {uri4.DnsSafeHost}"); // fe80::1%10 (without brackets, with zone ID)
Console.WriteLine();

// Example 6: IPv4 address.
Console.WriteLine("Example 6: IPv4 address");
Uri uri5 = new Uri("http://192.168.1.1:8080/path");
Console.WriteLine($"  Host:        {uri5.Host}");        // 192.168.1.1
Console.WriteLine($"  IdnHost:     {uri5.IdnHost}");     // 192.168.1.1
Console.WriteLine($"  DnsSafeHost: {uri5.DnsSafeHost}"); // 192.168.1.1

Opmerkingen

In tegenstelling tot de Authority eigenschap bevat deze eigenschapswaarde niet het poortnummer.

De waarde die door deze eigenschap wordt geretourneerd, is afhankelijk van het hosttype:

  • Voor DNS-hostnamen (inclusief internationale domeinnamen): retourneert de escape-invoer. Niet-ASCII-tekens worden geretourneerd as-is en worden niet punycode gecodeerd.
  • Voor IPv6-adressen: retourneert het adres tussen vierkante haken (bijvoorbeeld [::1]), maar bevat niet de zone-id (bereik), zelfs niet als er een is opgegeven in de oorspronkelijke URI.
  • Voor IPv4-adressen: retourneert de notatie met stippeltekens (bijvoorbeeld 192.168.1.1).

Voor DNS-omzetting of andere netwerkscenario's op lager niveau gebruikt IdnHost u in plaats daarvan, dat een punycode-gecodeerd formulier retourneert voor geldige internationale domeinnamen en de zone-id (zonder vierkante haken) voor IPv6-adressen bevat. Gebruik Host deze als u wilt dat de host wordt weergegeven in de URI (bijvoorbeeld voor weergave of vergelijking).

Van toepassing op