일반 프로그램이 호스트 이름을 확인하는 것처럼 호스트 이름을 IP 주소로 확인하는 명령을 원합니다. 즉, 일반 DNS뿐만 아니라 mDNS( .local
) 및 를 고려해야 합니다. 따라서 , 및 는 세 가지 도구 모두 일반 DNS만 사용하고 주소를 확인하지 않으므로 /etc/hosts
제외됩니다 .host
dig
nslookup
.local
Linux에서는 getent
다음 명령을 사용합니다.정확히 내가 원하는 것. 그러나 getent
OS X에는 존재하지 않습니다.
Mac OS X에 상응하는 제품이 있습니까 getent
? 나는 다음을 getaddrinfo
사용하여 몇 줄을 쓸 수 있다는 것을 알고 있습니다.
감사해요!
답변1
dscacheutil
나는 이것이 당신이 찾고 있는 것이라고 생각합니다 . 캐싱, /etc/hosts, mDNS(.local용)를 지원합니다.
dscacheutil -q host -a name foo.local
또 다른 옵션은dns-sd
dns-sd -q foo.local
답변2
(확립된user422009의 답변)
이것을 당신의~/.bash_profile:
getent() {
[ "$1" == "hosts" ] && shift
for x
do
echo $x $(dscacheutil -q host -a name $x | awk '/^ip_address/{print $NF}')
done
}
그런 다음 새 터미널을 열거나 bash_profile을 가져옵니다.
. ~/.bash_profile
그러면 작동합니다:
$ getent hosts www.example.com
www.example.com 93.184.216.34