Получить запись MX с самым низким приоритетом из PHP - PullRequest
0 голосов
/ 26 сентября 2018

Мне нужно получить записи MX из домена, но только ту, которая имеет самый высокий приоритет (наименьшее число).

Я потратил немало денег, но не смог понять, какверните только один результат.

   $results = dns_get_record($domain, DNS_MX);

   foreach ($results as $result)
   {
    $A = dns_get_record($result['target'], DNS_A);
    foreach ($A as $ip)
    { 
             echo $ip['ip'];
    }
   }

Это дает мне то, что я хочу закончить, но для каждой записи MX, имеющейся в домене.

Если кто-то может указать мне правильное направлениеэто было бы здорово!

Ура!

1 Ответ

0 голосов
/ 26 сентября 2018

Используйте функцию array_column(), чтобы собрать все приоритеты, а затем используйте array_filter, чтобы извлечь самые маленькие:

// get all the results
$results = dns_get_record($domain, DNS_MX);
// find the lowest value in the "pri" column
$target_pri = min(array_column($results, "pri"));
$highest_pri = array_filter(
    $results,
    // keep anything that matches the lowest (could be more than one)
    function($item) use($target_pri) {return $item["pri"] === $target_pri;}
);
// now loop through each of them, finding all their IP addresses
foreach ($highest_pri as $mx) {
    echo "$mx[target]: ";
    $results = dns_get_record($mx["target"], DNS_A);
    foreach ($results as $a) {
        echo "$a[ip] ";
    }
    echo "\n";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...