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.
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.
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. |
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";
}
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";
}
}
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.