Uri.Host Eigenschaft

Definition

Ruft die Hostkomponente dieser Instanz ab.

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

Eigenschaftswert

Der Hostname. Dies ist in der Regel der DNS-Hostname oder die IP-Adresse des Servers.

Ausnahmen

Diese Instanz stellt einen relativen URI dar, und diese Eigenschaft ist nur für absolute URIs gültig.

Beispiele

Im folgenden Beispiel wird der Hostname (www.contoso.com) des Servers in die Konsole geschrieben.

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)

Das folgende Beispiel zeigt, wie Host und IdnHost unterschiedlich sich dns-, IDN-, IPv4- und IPv6-Eingaben unterscheiden:

// 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

Hinweise

Authority Im Gegensatz zur Eigenschaft enthält dieser Eigenschaftswert nicht die Portnummer.

Der von dieser Eigenschaft zurückgegebene Wert hängt vom Hosttyp ab:

  • Für DNS-Hostnamen (einschließlich internationaler Domänennamen): Gibt die Escapeeingabe zurück. Nicht-ASCII-Zeichen werden as-is zurückgegeben und sind nicht punycodecodiert.
  • Für IPv6-Adressen: Gibt die Adresse zurück, die in eckige Klammern (z. B. ) eingeschlossen ist, [::1]aber nicht die Zonen-ID (Bereich) enthält, auch wenn eine in der ursprünglichen URI angegeben wurde.
  • Für IPv4-Adressen: Gibt die punktierte Dezimalnotation (z. B 192.168.1.1. ) zurück.

Verwenden Sie IdnHost für DNS-Auflösungs- oder andere Netzwerkszenarien auf niedrigerer Ebene stattdessen, die ein punycodecodiertes Formular für gültige internationale Domänennamen zurückgibt und die Zonen-ID (ohne Klammern) für IPv6-Adressen enthält. Verwenden Sie diese Methode Host , wenn der Host im URI angezeigt wird (z. B. zum Anzeigen oder Vergleich).

Gilt für: