In eigenen Scripts benötigt man oft die eigene IP-Adresse. (wozu?). Mit einer statischen IP-Adresse stellt dies kein Problem dar, meistens erhält man aber eine dynamische IP-Adresse per DHCP oder PPP zugewiesen. Diese IP-Adressen sind per Script schwerer zu verarbeiten, weil man nicht einen festen Wert einstellen kann.
Die IP-Adresse muss dann zur Laufzeit des Scripts ermittelt werden, man erreicht dies mit folgendem Shellscript:
env LC_ALL=C /sbin/ifconfig eth0 | sed -n '/addr:/s/ [^r]*..//gp'
Eine weitere Möglichkeit ist der Befehl:
hostname -i
(das liefert dann z.B. 127.0.0.1)
Nur wenn die Namensauflösung des Systems nicht richtig funktioniert. ( meist /etc/hosts ) probier mal:
hostname -iv
Er holt die IP für diesen Host(Namen) vom DNS System!
Mindestens bei SuSE gehört auch ipaddr zur Standardausstattung. Siehe auch http://www.han.de/~ott/ipaddr/
Frage: Kennt jemand ne einfache Möglichkeit die externe IP zu ermitteln, für den Fall, dass man hinter einem Router mit Masquerading sitzt? -- JanRoehrich 2003-02-01 13:07:51
Damit z.B.: http://www.ignite400.org/cgi-dta/cgitest.mac/main
ddclient kann das für div. Router
Die Seite http://checkip.dyndns.org/ abrufen und die IP-Adresse auslesen (etwas anderes macht auch ddclient nicht).
- gut, aber warum muss ich dann den Router-Typ einstellen?
andere Möglichkeit : LANG=C /sbin/ifconfig |grep "inet.*P-t-P" | awk 'BEGIN { FS="[ :]+"} ; {print $4}'
Sofern man keinen externen Proxy verwendet kann man auch auf z.B.: http://www.heise.de/ip/ sich die eigenen IP anzeigen lassen
Das Thema ist falsch: Nicht der Rechner hat eine IP-Adresse, sondern die Schnittstelle. Jede Ethernetkarte hat eine andere IP-Adresse. zusätzlich noch jede Verbindung PPP Und immer die localhost-Adresse 127.0.0.1
Wer braucht, und wofür eine andere Adresse seines Rechners außer der 127.0.0.1 ? Von welcher Schnittstelle? eth0? eth1? ppp? Linux ist da offen!