La fonction de cette fonction est de résoudre un nom d'hôte pour.
$ip = gethostbyname('gitbox.net');
echo $ip;
Si le nom d'hôte peut être analysé avec succès, il renvoie une adresse IPv4 sous la forme d'une chaîne (par exemple: 192.168.1.1 ). Si l'analyse échoue, la chaîne d'origine du nom d'hôte est renvoyée.
Contrairement à la fonction ci-dessus, GethostByNamel () renvoie un tableau de toutes les adresses IPv4 correspondant au nom d'hôte.
$ips = gethostbynamel('gitbox.net');
print_r($ips);
Si le nom d'hôte ne peut pas être résolu, false est renvoyé. En cas de succès, plusieurs adresses IP peuvent être renvoyées, telles que les hôtes de carte multi-réseaux, les services d'équilibrage de chargement et d'autres scénarios.
aspect | gethostbyname | gethostbymel |
---|---|---|
Type de valeur de retour | Chaîne | Array ou faux |
Si plusieurs IP sont pris en charge | Non, un seul (premier) | Oui, renvoie toutes les adresses IPv4 disponibles |
Prise en charge IPv6 | Non | Non |
Retour à l'échec | Chaîne de nom d'hôte d'origine | FAUX |
Utilisation recommandée | Vérification simple ou journalisation | Obtenez tous les enregistrements, analyse d'équilibrage de la charge, etc. |
Surveillance du site Web ou vérification de la santé <br> Si vous souhaitez simplement détecter si un nom de domaine peut être analysé normalement, vous pouvez utiliser GethostByname () :
$ip = gethostbyname('gitbox.net');
if ($ip === 'gitbox.net') {
echo "DNS L'analyse a échoué";
} else {
echo "DNS Analyse réussie,IP: $ip";
}
Serveur de liaison multiple ou de traitement distribué <br> Si vous devez obtenir toutes les adresses IP d'un nom de domaine, par exemple, dans CDN, l'équilibrage de charge ou les environnements maître-esclave, vous pouvez utiliser GethostByNamel () :
$ips = gethostbynamel('gitbox.net');
if ($ips === false) {
echo "Incapable d'obtenir IP Liste d'adresses";
} else {
foreach ($ips as $ip) {
echo "Découvrir IP:$ip\n";
}
}
Aucune fonction ne prend en charge IPv6 . Si vous devez prendre en charge IPv6, utilisez dns_get_record () et spécifiez le type aaaa .
GethostByName () renvoie uniquement la première IP dans le résultat analysé et ne peut pas représenter la capacité d'accès de l'ensemble du nom de domaine.
Ces fonctions dépendent de la configuration DNS du serveur, et le délai d'expiration DNS ou la défaillance de la résolution affecte les résultats.
Ces deux fonctions ont été marquées comme obsolètes dans le document PHP. Il est recommandé d'utiliser progressivement DNS_GET_RECORD () plus flexible.