Eigene IP Adresse unter Linux feststellen

[vgwort line=“37″ server=“vg08″ openid=“cfdd2aea6d8b4bf68920135e82919fcc“]

Heute stellte sich mir die Frage, wie stelle ich am einfach die IP-Adresse des Rechners unter Linux fest. Eine Google-Suche führte zu Forenbeitrag mit immer neuen Vorschlägen bis hin zu Laufzeitvergleichen der Vorschläge. Wenn Linux Shell Freak in Fahrt kommen, kann sie keiner halten. Wahrscheinlich werden die gesparten Milli-Sekunden sich im Laufe der Jahre zu einen deutlichen Gewinn an Lebenszeit summieren.

Die Frage ist nicht ganz präzise gestellt. Ein Rechner hat immer die Loopback Adresse 127.0.0.1. Zudem kann ein Rechner mehrere Netzwerkkarten besitzen, denen wiederum mehrere IP-Adressen zugeordnet sein können. Im letzteren Fall erhalten die Netzwerkkarten allerdings zusätzliche Namen wie beispielsweise eth0:0, eth0:1. Auch ein VPN-Tunnel erzeugt eine virtuelle Netzwerkkarte mit einer eigenen IP-Adresse. Damit stellt sich die Frage: Welche IP-Adresse hätten Sie denn gerne?

Beschränken wir uns auf zwei Fälle: Der Gerätename ich bekannt und alle IP-Adressen.

Anmerkung: Mein Rechner verwendet eine Netzwerkbrücke, deshalb ist die erste Adresse an br0 statt eth0 gebunden.Hier nun mein Vorschlag:

IP-Adresse mit ifconfig bestimmen

Fall 1: IP-Adresse eines Gerätes

u1@r1:~> /sbin/ifconfig br0 | sed -n '/inet Adresse:/ { s# *inet Adresse:##; s# .*##p }'
192.168.2.197

Fall 2: IP-Adresse aller Geräte

Wird der Gerätename br0 weg gelassen, liefert der Befehl eine Liste aller Adressen.

u1@r1:~> /sbin/ifconfig | sed -n '/inet Adresse:/ { s# *inet Adresse:##; s# .*##p }'
192.168.2.197
192.168.200.1
127.0.0.1

Wer eine andere Sprachlokalisation verwendet, muss hier den Teil „inet Adresse“ anpassen. Ich nehme mir jetzt nicht die Zeit, dies zu Internationalisieren.

Warum nicht hostname -i

Weil folgendes Ergebnis

u1@r2:~> hostname -i
192.168.1.50 127.0.0.2

diesem widerspricht:

u1@r2:~> /sbin/ifconfig | sed -n '/inet Adresse:/ { s# *inet Adresse:##; s# .*##p }'
192.168.2.5
192.168.17.3
192.168.1.50
127.0.0.1
172.16.0.2

Das Programm hostename ist nicht sonderlich vorhersagbar in seiner Ausgabe. Auf anderen Rechnern wird das Loopback device nicht angezeigt und woher die 127.0.0.2 her kommt, ist mir schleierhaft.

Windows

Unter Windows ist die Sache nicht ganz so einfach, da so schöne Tools wie sed dort im Allgemeinen nicht installiert sind. Vielleicht kennt jemand eine VBS Funktion. Aber wen interessiert Windows?

Wen Windows doch interessiert findet eine Lösung in meinem Wiki, die unter Windows XP und 7 funktioniert. Unter Vista oder Windows 8 habe ich es nicht getestet, sollte aber auch gehen.