
Unter Linux kann ich mithilfe eines Bash-Terminals Folgendes tun:
hostname -d
den Namen der DNS-Domäne anzuzeigen undhostname -i
um 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 -d
Verwenden Sie für hostname -f
:
hostname -f | sed -e 's/^[^.]*\.//'
Für IP-Adressen verwenden Sie ifconfig -a
(suchen Sie nach den inet
Daten). Ihr Computer verfügt möglicherweise nur über ein Netzwerkgerät, en0
sodass Sie einfach
ifconfig en0 |awk '/inet / {print $2; }'
Wenn Sie an allen Netzwerkgeräten interessiert sind, beachten Sie, dass ifconfig -l
die 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 dnsdomainname
unter 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