Linux에서 호스트 이름(예: "getent")을 확인하기 위한 Mac OS 명령

Linux에서 호스트 이름(예: "getent")을 확인하기 위한 Mac OS 명령

일반 프로그램이 호스트 이름을 확인하는 것처럼 호스트 이름을 IP 주소로 확인하는 명령을 원합니다. 즉, 일반 DNS뿐만 아니라 mDNS( .local) 및 를 고려해야 합니다. 따라서 , 및 는 세 가지 도구 모두 일반 DNS만 사용하고 주소를 확인하지 않으므로 /etc/hosts제외됩니다 .hostdignslookup.local

Linux에서는 getent다음 명령을 사용합니다.정확히 내가 원하는 것. 그러나 getentOS 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

dnscacheutil에 대한 추가 정보.

답변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

관련 정보