
No Linux, usando um Terminal Bash, posso fazer:
hostname -d
para exibir o nome do domínio DNS ehostname -i
para 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 inet
dados). Sua máquina pode ter apenas um dispositivo de rede, en0
entã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 -l
esta 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 dnsdomainname
o 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