Aktueller Standort: Startseite> Neueste Artikel> Der Unterschied zwischen GetHostByName und GethostbyName

Der Unterschied zwischen GetHostByName und GethostbyName

gitbox 2025-05-26

1. Funktionsdefinition und Funktion

GetHostByName (String $ hostName): String

Die Funktion dieser Funktion besteht darin, einen Hostnamen zu beheben.

 $ip = gethostbyname('gitbox.net');
echo $ip;

Wenn der Hostname erfolgreich analysiert werden kann, gibt er eine IPv4 -Adresse in Form einer String zurück (z. B. 192.168.1.1 ). Wenn das Parsen fehlschlägt, wird die originale String des Host -Namens zurückgegeben.

Gethostbynamel (String $ hostName): Array | Falsch

Im Gegensatz zur obigen Funktion gibt GetHostbynamel () ein Array aller IPv4 -Adressen zurück, die dem Hostnamen entsprechen.

 $ips = gethostbynamel('gitbox.net');
print_r($ips);

Wenn der Hostname nicht gelöst werden kann, wird FALSE zurückgegeben. Bei Erfolg werden mehrere IP-Adressen zurückgegeben, wie z. B. Multi-Network-Karten-Hosts, Lastausgleichsdienste und andere Szenarien.


2. Hauptunterschiede

Aspekt Gethostbyname Gethostbynamel
Rückgabewerttyp Saite Array oder falsch
Ob mehrere IPs unterstützt werden Nein, nur einer (erster) Ja, gibt alle verfügbaren IPv4 -Adressen zurück
IPv6 -Support NEIN NEIN
Rückkehr auf Fehler Original Hostname Zeichenfolge FALSCH
Empfohlene Verwendung Einfache Überprüfung oder Protokollierung Erhalten Sie alle Aufzeichnungen, Lastausgleichsanalyse usw.

3.. Analyse der tatsächlichen Anwendungsszenarien

  1. Website -Überwachung oder Gesundheitsprüfung <br> Wenn Sie nur feststellen möchten, ob ein Domain -Name normal analysiert werden kann, können Sie GetHostByName () verwenden:

     $ip = gethostbyname('gitbox.net');
    if ($ip === 'gitbox.net') {
        echo "DNS Analyse fehlgeschlagen";
    } else {
        echo "DNS Erfolgreiche Analyse,IP: $ip";
    }
    
  2. Server-Multi-IP-Bindung oder verteilte Verarbeitung <br> Wenn Sie alle IP-Adressen eines Domänennamens erhalten müssen, z .

     $ips = gethostbynamel('gitbox.net');
    if ($ips === false) {
        echo "Nicht in der Lage zu bekommen IP Adressliste";
    } else {
        foreach ($ips as $ip) {
            echo "Entdecken IP:$ip\n";
        }
    }
    

4.. Dinge zu beachten

  • Keine der Funktionen unterstützt IPv6 . Wenn Sie IPv6 unterstützen müssen, verwenden Sie dns_get_record () und geben Sie den Typ AAAA an.

  • GetHostByName () gibt nur die erste IP im analysierten Ergebnis zurück und kann die Zugriffsfunktion des gesamten Domänennamens nicht darstellen.

  • Diese Funktionen hängen von der DNS -Konfiguration des Servers ab, und der DNS -Timeout- oder Auflösungsfehler beeinflusst die Ergebnisse.

  • Diese beiden Funktionen wurden im PHP -Dokument als veraltet markiert. Es wird empfohlen, stattdessen stattdessen flexiblere dns_get_record () zu verwenden.