Наша группа в Telegram для обмена идеями, проектами, мыслями, людьми в сфере ИТ г.Ростова-на-Дону: @it_rostov

getmxrr

(PHP 3, PHP 4, PHP 5)

getmxrr - получает MX-записи, соответствующие имени данного Internet-хоста.

Описание

int getmxrr (string hostname, array mxhosts [, array weight])

Ищет DNS для MX-записей, соответствующих hostname. Возвращает TRUE, если найдены любые записи; возвращает FALSE, если никаких записей не было найдено или если возникла ошибка.

Список найденных MX-записей помещается в массив mxhosts. Если массив weight задан, он будет заполнен полученной weight-информацией.

Эта функция принимает в качестве аргумента имя хоста hostname в данном домене и заполняет массив mxhost списком почтовых ретрансляторов этого домена.

Если указан третий необязательный аргумент weight, то функция заполняет его значениями предпочтения, которые возвращает ей почтовый ретранслятор

Пример получения списка почтовых ретрансляторов
$domain = "server.com";
getmxrr($domain, $maillist, $priority);
echo("Список почтовых ретрансляторов хоста $domain: \n");
 for($i = 0; $i < count($maillist), ++$i) {
     echo("$maillist[$i] = $priority[$i] \n"); }

Функция getmxrr() не работает в Windows!

Эмулятор функции getmxrr
if (!function_exists("getmxrr")) {
  function getmxrr($hostname, &$hosts, &$weights=false) {
    $hosts = $weights = array();
    // Не идеальный способ, но работающий: используется внешняя
    // программа nslookup, доступная в WIndows NT/2000/XP/2003.
    exec("nslookup -type=mx $hostname", $result);
    // Построчно перебираем ответ утилиты.
    foreach ($result as $line) {
      // Выделяем имя почтового сервера.
      if (preg_match('/mail\s+exchanger\s*=\s*(\S+)/', $line, $pock)) {
        $hosts[] = $pock[1];
        // Также выделяем вес.
        if (preg_match("/MX\s+preference\s*=\s*(\d+)/", $line, $pock))
          $weights[] = $pock[1];
        else
          $weights[] = 0;
      }
    }
    return count($hosts) > 0;
  }
}
// В PHP5 появился синоним для getmxrr() - его мы тоже эмулируем.
if (!function_exists("dns_get_mx")) {
  function dns_get_mx($hostname, &$hosts, &$weights) {
    return getmxrr($hostname, $hosts, $weights);
  }
}

Смотрите также checkdnsrr(), gethostbyname(), gethostbynamel() и gethostbyaddr().

Все функции сетевые
Описание на ru2.php.net
Описание на php.ru