Что-нибудь вроде 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-адрес и имя машины я не знал.