nsswitch를 통해 호스트 이름을 확인하는 방법은 무엇입니까?

nsswitch를 통해 호스트 이름을 확인하는 방법은 무엇입니까?

설치 스크립트의 사전 실행 테스트로 호스트 이름이 127.0.0.1 이외의 이름으로 확인되는지 여부를 스크립트에서 테스트하고 싶습니다. 내가 아는 도구(dig, nslookup)는 구체적으로 DNS를 쿼리합니다. 내 경우에는 /etc/hosts의 올바른 항목이 유효한 구성이었습니다. 질문은 다음과 같습니다.

예를 들어 ping처럼 nsswitch.conf를 통해 전체 이름 확인 프로세스를 수행할 수 있는 발굴 도구(이미 시스템에 있는 것이 좋음)가 있습니까?

dig my-test-server-that-only-exists-in-etc-hosts 

NXDOMAIN을 반환합니다.

답변1

SU에 대한 답변이 이미 있습니다.

Bash: 검색에서 /etc/hosts를 포함하여 IP에서 호스트 이름 찾기

기본적으로 당신은

getent ahosts host_name

여기서 호스트 이름은 사용자 항목 /etc/hosts(이 경우 해당 항목으로 확인됨)이거나 DNS가 확인할 수 있는 호스트일 수 있습니다.

매뉴얼 getent(1)페이지를 인용하면 다음과 같습니다.

주인
키가 제공되지 않으면 sethostent(3), gethostent(3) 및 endhostent(3)를 사용하여 호스트 데이터베이스를 열거합니다. 이는 호스트를 사용하는 것과 동일합니다. 하나 이상의 키 인수가 제공되면 각 키를 AF_UNSPEC 주소 계열의 getaddrinfo(3)에 연속적으로 전달하여 반환된 각 소켓 주소 구조를 열거합니다.

관련 정보