Unix: как тестировать Ip-адрес разрешен для имен

Unix: Как проверить IP-адрес разрешено для имени.

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

Код:

DNS_Lookup() { LOOKUP=$(nslookup $1) FAIL_COUNT=$(echo $LOOKUP | grep "** server can't find " | wc -l); if [ $FAIL_COUNT -eq 1 ];then echo "Unable to resolve DNS for $1" else echo "IP:$1 DNS Name:$(echo $LOOKUP | grep -v nameserver | cut -f 2 | grep name | cut -f 2 -d "=" | sed 's/ //')" return 0 fi } DNS_Lookup 192.168.27.191 

Вышеприведенный код не работает во всех возможных случаях. ОС: CentOS

  • Почему на выходе моей команды есть пустые строки ?: find ~ / x / y / | shuf> ~ / Desktop / z.txt
  • Как скопировать файл из удаленной сети на локальный рабочий стол
  • Нужна помощь с скриптом оболочки, используемым для работы cron
  • Соединения SSH, работающие в фоновом режиме, не выводятся, если несколько соединений были запущены одной и той же оболочкой
  • Как получится, когда x = abc, ] && echo yes || эхо не возвращается?
  • Записать исходный файл Python в файл немедленно
  • Баш ограничен оболочкой с использованием rbash
  • Пакетная копия в несколько каталогов
  • 2 Solutions collect form web for “Unix: как тестировать Ip-адрес разрешен для имен”

    Вы можете использовать команду getent с параметром hosts следующим образом:

     getent hosts www.google.com 

    И подсчитайте, сколько результатов получится:

     getent hosts www.google.com | wc -l 

    getent использует библиотеки Switch Name Service, чтобы выполнять различные запросы имен. Со вторым параметром вы можете определить, какой тип db вы хотите найти. Проверьте man getent для деталей.

    Показаны два возможных подхода, которые переносимы.

     #!/bin/sh reverseDNS=$(host 8.8.8.8) if [ $? != 0 ]; then printf '%s\n' "Reverse DNS [FAILED]" else printf '%s\n' "Reverse DNS [OK]" fi ###### nslookup ########## nslookup_func(){ nslookup=$(nslookup google.com) if [ "$nslookup" = ";; connection timed out; no servers could be reached" ]; then printf '%s\n' "nslookup [FAILED]" else printf '%s\n' "nslookup [OK]" fi } nslookup_func 
    Interesting Posts
    Linux и Unix - лучшая ОС в мире.