Mac OS X-Terminal-Äquivalent für Hostnamen-Informationen

Mac OS X-Terminal-Äquivalent für Hostnamen-Informationen

Unter Linux kann ich mithilfe eines Bash-Terminals Folgendes tun:

  • hostname -dden Namen der DNS-Domäne anzuzeigen und
  • hostname -ium die Netzwerkadresse(n) des Hostnamens anzuzeigen.

Wie kann ich dieselben Informationen von einem Bash-Terminal in Mac OS X abrufen – vorzugsweise mit einem einzigen Befehl (mit Option, falls erforderlich) und ohne die Berechtigungen erhöhen zu müssen?

Als Referenz ist hier die Bash-Version, die ich unter Mac OS X verwende:

  • GNU Bash, Version 3.2.57(1)-Release (x86_64-apple-darwin15).

Antwort1

hostname -dVerwenden Sie für hostname -f:

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

Für IP-Adressen verwenden Sie ifconfig -a(suchen Sie nach den inetDaten). Ihr Computer verfügt möglicherweise nur über ein Netzwerkgerät, en0sodass Sie einfach

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

Wenn Sie an allen Netzwerkgeräten interessiert sind, beachten Sie, dass ifconfig -ldie Geräte aufgelistet werden. Hier werden die Geräte und ihre entsprechenden Adressen aufgelistet:

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

Weiterführende Literatur:

Antwort2

ich benutze

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

was unter bestimmten Umständen besser zu funktionieren scheint, aber Ihre Erfahrung kann abweichen. Ich mache dies in meinem Profil zu einem Alias ​​(nur für Mac), der dnsdomainnameunter Linux funktioniert (anstelle von hostname -d).

Antwort3

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

Antwort4

Verwenden Sie „dig“. Suchen Sie nach Befehlen ähnlich wie whois

dig hostname => sowohl Hostname als auch IP-Adresse

dig ip.address => nicht so vollständig

verwandte Informationen