Было бы возможно стать терминальным для повторения nslookup
запуск с 192.168.1.2
через 192.168.1.20
смотреть на все компьютеры в сети, не имея необходимость входить в сервер. Действительно ли это возможно?
nslookup
самостоятельно не имеет поддержки нотации CIDR, диапазонов или подстановочных знаков, таким образом, Ваш наилучший вариант вероятен простой цикл удара.
for ip in 192.168.1.{2..20}; do nslookup $ip; done
Ответ dfarrell07 решает проблему общим способом, не в зависимости от nslookup
- который является правильным способом сделать это, я думаю.
Но ради разнообразия и примеров синтаксиса оболочки, вот другой подход, более связанный с поиском доменного имени:
Программе поиска можно было сказать обработать все адреса сразу; Это, кажется, хитро с nslookup
, (это может потребовать использования expect
) таким образом, я буду использовать dig
вместо этого.
Существует опция -x
для dig
сделать обратные поиски. Та опция берет только один адрес, поэтому просто перечисление их не работает. Но на командной строке может быть несколько запросов, таким образом, опция может быть повторена.
Мы не можем использовать 192.168.1.{2..20}
для списка адресов, потому что нам нужен a -x
перед каждым. Используя '-x 192.168.1.'{2..20}
места a -x
перед ними - но не как отдельный параметр командной строки - dig
добрался бы -x 192.168.1.2
как один аргумент, в то время как это должно видеть -x
и 192.168.1.2
. Я буду использовать расширение подоболочки в качестве обходного решения для разделения слов - но я уверен, что существует больше очевидных способов, чтобы сделать это.
Эта команда должна перечислить имена хостов, которые Вы хотите:
dig +noall +answer $(echo '-x 192.168.1'{2..20})
показ чего-то как
$ dig +noall +answer $(echo '-x 193.99.144.'{80..83})
80.144.99.193.in-addr.arpa. 20800 IN PTR redirector.heise.de.
81.144.99.193.in-addr.arpa. 20134 IN PTR www.ix-konferenz.de.
83.144.99.193.in-addr.arpa. 21599 IN PTR limesurvey.heise.de.
Относительно отдельных параметров командной строки: можно попробовать следующие команды, они покажут тот же вывод, но в первом, echo
впереди получает 11 аргументов, каждого -x
и отдельный IP-адрес, в то время как во втором, echo
только получает 7 аргументов:
$ echo dig +noall +answer $(echo '-x 193.99.144.'{80..83})
dig +noall +answer -x 193.99.144.80 -x 193.99.144.81 -x 193.99.144.82 -x 193.99.144.83
$ echo dig +noall +answer '-x 193.99.144.'{80..83}
dig +noall +answer -x 193.99.144.80 -x 193.99.144.81 -x 193.99.144.82 -x 193.99.144.83