Есть ли способ получить записи DNS, которые включают в себя исходное значение TTL записи DNS, с PHP? - PullRequest
0 голосов
/ 16 января 2020

Я искал в документации PHP, Google и Stack Overflow способ получения записи DNS с ее исходным TTL, и я не могу найти решение. Похоже, мои поиски всегда возвращают меня к функции PHP dns_get_record ().

Документация PHP для состояний функции dns_get_record:

«Время жить» осталось для этой записи. Это не будет равняться исходному значению ttl записи, но скорее будет равно исходному значению ttl за вычетом промежутка времени, прошедшего с момента запроса полномочного сервера имен.

Есть ли способ получения записей DNS, который включите их исходное значение TTL с PHP?

Ответы [ 2 ]

0 голосов
/ 17 января 2020

Я полагаю, что первоначальный комментарий @Patrick Mevzek является реальным ответом на мой вопрос.

"Оригинальный" TTL - это тот, который предоставлен авторитетным сервером имен, так что вам нужно просто запросить его вместо любого рекурсивный сервер имен.

Наряду с комментарием @ Sammitch:

К сожалению, хотя PHP не предоставляет никаких функций DNS, кроме использования распознавателя ОС, который не позволит вам сделать это. Так что нет, вы не можете сделать это в PHP.

0 голосов
/ 16 января 2020

В вашем случае я бы предложил написать простую форму перед командой dig. Позвольте пользователям указать имя хоста, тип записи и [необязательно] сервер имен и просто передать результат dig обратно как есть. Например:

function dig($hostname, $type, $ns=NULL) {
        exec(sprintf(
                'dig %s %s %s',
                escapeshellarg($hostname),
                escapeshellarg($type),
                is_null($ns) ? '' : escapeshellarg(sprintf('@%s', $ns))
        ), $result);
        return implode("\n", $result);
}
...