Heim  >  Artikel  >  Web-Frontend  >  Verwenden Sie die Shell-Befehlszeile, um die lokale IP-Adresse abzurufen

Verwenden Sie die Shell-Befehlszeile, um die lokale IP-Adresse abzurufen

一个新手
一个新手Original
2017-09-07 15:22:524726Durchsuche


Verwenden Sie die Shell-Befehlszeile, um die lokale IP-Adresse zu erhalten.

Geben Sie ifconfig unter Mac ein oder geben Sie linux unter ip a ein, um unsere Netzwerkkarteninformationen zu erhalten . Normalerweise müssen wir jedoch unsere IP-Adresse überprüfen, und wir benötigen nicht so viele Informationen. Daher möchte ich diese Informationen extrahieren.

Die folgende Implementierung von mac ifconfig

Wir geben ifconfig ein und erhalten eine große Information. Wir können sehen, dass die Zeichenfolge vor der gewünschten IP-Adresse inet

Also optimieren wir den Code wie folgt:

ifconfig | grep inet
Holen Sie sich die folgenden Informationen:

    inet 127.0.0.1 netmask 0xff000000
    inet6 ::1 prefixlen 128    inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
    inet6 fe80::85e:9798:4041:1717%en0 prefixlen 64 secured scopeid 0x4
    inet 192.168.12.139 netmask 0xffffff00 broadcast 192.168.12.255
    inet6 fd86:415c:c5f9::c72:1c02:f044:65de prefixlen 64 autoconf secured
    inet6 fd86:415c:c5f9::cd76:7bb1:f77d:46f0 prefixlen 64 deprecated autoconf temporary
    inet6 fd86:415c:c5f9::508d:685b:6a66:b3ce prefixlen 64 autoconf temporary
    inet6 fe80::9446:a1ff:fe5e:9b8f%awdl0 prefixlen 64 scopeid 0x9
    inet6 fe80::9d71:6fa:3da5:9cb6%utun0 prefixlen 64 scopeid 0xa
Okay, es wurde stark optimiert.

Wir können unsere lokale IP erhalten, indem wir die Informationen von

und inet6 ausschließen. 127

ifconfig | grep inet | grep -v inet6 | grep -v 127
Die Vorderseite ist „Wir tun es nicht“. Ein Tabulatorzeichen ist uns egal und wir nehmen das zweite Feld, um unsere IP-Informationen zu erhalten

    inet 192.168.12.139 netmask 0xffffff00 broadcast 192.168.12.255
und wir können erfolgreich die andere lokale IP-Adresse erhalten, die wir wollen.

Wir erstellen eine
ifconfig | grep inet | grep -v inet6 | grep -v 127 | cut -d ' ' -f2
-Datei unter

und verwenden

, um Ausführungsberechtigungen zu erteilen. Geben Sie dann

in die Befehlszeile ein, um unsere lokale IP zu erhalten. ~/.bin/getipchmod +x ~/.bin/getipSie müssen getip zuerst als Umgebungsvariable konfigurieren. Bitte verwenden Sie diesen Befehl als Systembefehl, der jederzeit ausgeführt werden kann

~/.bin/unter Linux Centos 7 Implementieren Sie das Skript, um die lokale IP zu erhalten.

verwendet nicht den Befehl

, um Informationen abzurufen, sondern

, um sie abzurufen.

linuxAlso ändern wir den obigen Befehl in ifconfigip a

Da der Anfang der in Linux erhaltenen Informationen kein Tabulatorzeichen, sondern ein Leerzeichen ist, haben wir

hinzugefügt, um führende Leerzeichen zu entfernen.

ip a | grep inet | grep -v inet6 | grep -v 127 | sed 's/^[ \t]*//g' | cut -d ' ' -f2
Andere Logik ist dieselbe. Wenn Sie möchten, können Sie es auch global machen, und die Logik ist im Grunde die gleiche wie bei Mac.

Das obige ist der detaillierte Inhalt vonVerwenden Sie die Shell-Befehlszeile, um die lokale IP-Adresse abzurufen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn