Erscheinen einige Antworten mit dem neueren werden ip
Befehl (Ersatz ifconfig
) hier so ist man , dass Anwendungen ip addr
, grep
und awk
einfach die IPv4 - Adresse mit der zugehörigen drucken wlan0
Schnittstelle:
ip addr show wlan0|grep inet|grep -v inet6|awk '{print $2}'|awk '{split($0,a,"/"); print a[1]}'
Obwohl es nicht die kompakteste oder ausgefallenste Lösung ist, ist es (wohl) leicht zu verstehen (siehe Erklärung unten) und kann für andere Zwecke geändert werden, z. B. um die letzten 3 Oktette der MAC-Adresse wie folgt abzurufen:
ip addr show wlan0|grep link/ether|awk '{print $2}'|awk '{split($0,mac,":"); print mac[4] mac[5] mac[6]}'
Erläuterung: ip addr show wlan0
Gibt Informationen aus, die der genannten Netzwerkschnittstelle zugeordnet sind. wlan0
Diese sollten ungefähr so aussehen:
4: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether dc:a6:32:04:06:ab brd ff:ff:ff:ff:ff:ff
inet 172.18.18.1/24 brd 172.18.18.255 scope global noprefixroute wlan0
valid_lft forever preferred_lft forever
inet6 fe80::d340:5e4b:78e0:90f/64 scope link
valid_lft forever preferred_lft forever
Als nächstes grep inet
filtert die Linien , die „inet“ (IPv4 und IPv6 - Konfiguration) und enthält keine grep -v inet6
filtert die restlichen Zeilen , die nicht „inet6“ enthalten, die in einer einzigen Zeile wie diese führen sollten:
inet 172.18.18.1/24 brd 172.18.18.255 scope global noprefixroute wlan0
Schließlich awk
extrahiert der erste das Feld "172.18.18.1/24" und der zweite entfernt die Kurzform der Netzwerkmaske, wobei nur die IPv4-Adresse übrig bleibt.
Ich denke auch, dass es erwähnenswert ist, dass es beim Erstellen von Skripten oft viele umfangreichere und / oder robustere Tools gibt, um diese Informationen zu erhalten, die Sie möglicherweise stattdessen verwenden möchten. Wenn Sie beispielsweise Node.js verwenden, gibt es ipaddr-linux
Rubylinux-ip-parser
usw.
Siehe auch /unix/119269/how-to-get-ip-address-using-shell-script