IP Adresse vom Server auslesen

Lord_Icon

Member
Hi,

ich müßte per Script die IP-Adresse vom Server auslesen.
Entweder per Shell-Script oder per PHP. Beides Stände zur Verfügung.

Bisher hatte mir der PHP Befehl $_SERVER['SERVER_ADDR'] gereicht.
Heute ist nun ein Benutzer auf die Nase gefallen, da er mit seinen Laptop per WLAN reingekommen ist. Hier bekomme ich den Hostname zurück... nicht die IP-addy.

Nun habe ich schon selbst ein bissel gewerkelt.
z.B. per:
Code:
root@testserver:~# ip addr | grep inet
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
    inet 192.168.0.21/24 brd 192.168.0.255 scope global wlan0
    inet6 fe80::214:a5ff:feaf:7e82/64 scope link

Das schöne hier... ich hätte alle IP Adressen zur Hand die im System eingerichtet sind. Da wäre es dann egal, ob er (wie in diesen Beispiel) per WLAN oder wie der Otto-normal-User über eth0 mit meinen Script kommuniziert.

Einer eine Idee, wie ich alle IP-Adressen von allen Netzwerkkarten auslesen kann ?
 
Code:
ip addr  | grep "inet " | grep -v 127.0.0.1 | awk -F' ' '{print $2}' | awk -F'/' '{print $1}' | tr "\n" " "
Funktioniert, aber kann man sicher noch optimieren und verbessern..
 
Hast du jetzt noch eine Idee, wie ich per PHP einen Frage an die Shell gebe damit der Benutzer ggf. eine IP Adresse doch noch nachtragen kann. ?

per #bin/bash s klar.
echo Eingabe und diese dann per read einlesen.

Aber per PHP klappt dies nicht mehr. Da wird nicht gewartet:
Fraglich, ob das hier einer weiß... wäre dann eher eine Frage für ein PHP Forum.
Aber ich versuchs mal. ich habe noch Hoffnung ;-)
 
Mit ein paar weniger Verkettungen:

Code:
ip addr | grep 'inet' | egrep -v '127.0.0.1|inet6' | sed -e 's/.*inet \([.0-9]*\).*/\1/'

Mal ganz dumm gefragt, wieso definierst du die IP des Servers nicht einfach in einer Variable? Ändert sich die IP ständig?

PS: Gleich kommt der Nächste mit einem AWK-Script, dass alles erschlägt.. Ich freu mich schon auf das funktionierende Beispiel von Joe User...
 
Last edited by a moderator:
Back
Top