Terminal Mac OS X equivalente para informações de nome de host

Terminal Mac OS X equivalente para informações de nome de host

No Linux, usando um Terminal Bash, posso fazer:

  • hostname -dpara exibir o nome do domínio DNS e
  • hostname -ipara exibir os endereços de rede do nome do host.

Como posso recuperar as mesmas informações - de preferência usando um único comando (com opção, se necessário) e sem precisar elevar privilégios - de um terminal Bash no Mac OS X?

Para referência, aqui está a versão do Bash que estou usando no Mac OS X:

  • GNU bash, versão 3.2.57(1)-release (x86_64-apple-darwin15) .

Responder1

Para o hostname -d, use hostname -f:

hostname -f | sed -e 's/^[^.]*\.//'

Para endereços IP, use ifconfig -a(procure os inetdados). Sua máquina pode ter apenas um dispositivo de rede, en0então você pode fazer apenas

ifconfig en0 |awk '/inet / {print $2; }'

Se você estiver interessado em todos os dispositivos de rede, lembre-se de que ifconfig -lesta lista os dispositivos. Isto lista os dispositivos e seus endereços correspondentes:

#!/bin/sh
for name in $(ifconfig -l)
do
    ifconfig $name |awk -v name=$name '/inet / {printf "%s: %s\n", name, $2; }'
done

Leitura adicional:

Responder2

estou usando

scutil --dns | grep 'search domain' | head -n 1 | grep -o '[a-zA-Z0-9.-]\+$'

que parece funcionar melhor em algumas circunstâncias, mas YMMV. Eu faço disso um alias no meu perfil (apenas para Mac) para dnsdomainnameo qual funciona no Linux (no lugar de hostname -d).

Responder3

ipconfig getifaddr $(route get 8.8.8.8 | awk '/interface: / {print $2; }')

Responder4

Use 'cavar'. Procure comandos semelhantes ao whois

dig hostname => ambos hostname + ipaddy

dig ip.address => não tão completo

informação relacionada