Unix: 이름에 대한 IP 주소 확인을 테스트하는 방법

Unix: 이름에 대한 IP 주소 확인을 테스트하는 방법

Unix: 이름에 대한 IP 주소 확인을 테스트하는 방법.

쉘 스크립트를 통해 DNS 항목을 사용하여 IP 주소를 이름으로 확인할 수 있는지 확인해야 합니다.

암호:

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

답변1

다음과 같이 매개변수 getent와 함께 명령을 사용할 수 있습니다 .hosts

getent hosts www.google.com

그리고 얻은 결과 수를 세어보세요.

getent hosts www.google.com | wc -l

getent이름 서비스 전환 라이브러리를 사용하여 다양한 이름 조회를 수행합니다. 두 번째 매개변수를 사용하면 찾고 있는 데이터베이스 유형을 정의할 수 있습니다. 세부정보를 확인하세요 man getent.

답변2

두 가지 가능한 휴대용 접근 방식이 표시됩니다.

#!/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 

관련 정보