Назад | Перейти на главную страницу

DNS-поиск с использованием подстановочных знаков?

Что-нибудь вроде nslookup или dig предлагать возможность поиска на основе чего-то, что содержится в имени ... например, поиск по шаблону или что-то в этом роде?

Я пытаюсь сделать небольшой скрипт с оболочкой графического интерфейса для нашей группы поддержки. В идеале я бы хотел, чтобы они могли выполнять поиск по фамилии пользователя (что-то, что всегда присутствует в записи DNS), а затем я заполню раскрывающийся список с возможными вариантами на выбор.

Я не могу найти способ получить эквивалент nslookup *miller* ... было бы здорово потом вернуться

Name: sf-jacobmiller.localdomain.com
Address: 10.10.10.121

Name: sf-justinmiller.localdomain.com
Address: 10.10.10.144

... который я мог бы затем разобрать в раскрывающийся список, чтобы они могли выбирать.

Я еще не изучал, что доступно с ldapsearch который может делать то, что я ищу. Мое единственное требование - он должен быть встроен в OSX, и мне не нужно ничего устанавливать, в противном случае я открыт для любых решений, которые вы можете предложить. Спасибо

Вы можете получить полный список въездов в зону с переносом зоны; вам нужно будет разрешить это для авторизованных систем на вашем DNS-сервере.

Как только это будет сделано, вы можете запустить передачу и получить результат:

dig axfr localdomain.com | grep -i miller

Сервер имен по своей конструкции не позволяет выполнять поиск в зоне или запрашивать, для каких зон он является авторитетным. Помимо очевидной причины уменьшения векторов атаки (вы не можете сделать запрос HTTP / 1.1 к хосту, если вы не знаете его имени), для этого есть очень веская причина: зона может содержать подстановочные знаки, поэтому спрашивайте для каждого хоста в такой зоне все равно что делить на ноль.

Если вы используете сервер имен, записи которого вы хотите искать, вы можете выполнить перенос зоны на локальный сервер имен и искать записи напрямую. Вам все равно нужно будет анализировать текстовые записи в том формате, в котором они передаются, поскольку локальный сервер имен не будет реагировать иначе.

Вы можете запросить DNS-сервер только о том, есть ли у него конкретная запись. Так что для DNS такого инструмента не будет.

редактировать

Зонетрансфер, конечно, возможен, если он доступен.

Согласившись с проверенным ответом, я подумал, что цикл for может быть альтернативой для кого-то, кто не уполномочен выполнять передачу зоны. Если вы знаете диапазон IP-адресов:

name="mthebeau"
net="123.45.67."
for ip in $( seq 1 255 ); do {
    sleep 1; # be kind to the server, unauthorized user
    text="$( nslookup $net$ip 2>&1 | grep "$name" )";
    if [ -z "$text" ]; then continue; fi;
    echo "$text";
}; do

Я нашел этот ответ, потому что хотел открыть свой рабочий стол для локального пользователя, чей IP-адрес и имя машины я не знал.