Seite 1 von 1

LAN-IP rausfinden

Verfasst: Samstag 22. Juli 2006, 08:55
von Whitie
Hallo Forum,
wie kann ich die IP-Adresse meines Rechners im lokalen Netzwerk rausfinden ?

Ich habe über die Suche folgendes gefunden:

Code: Alles auswählen

import socket
ip = socket.gethostbyname(socket.gethostname())
Leider liefert mir dieser Code nur die Adresse vom Loopback (127.0.0.1).
Ich bräuchte aber die Adresse der Netzwerkkarte (z.B. 10.0.0.4)

Gruß, Whitie

Verfasst: Sonntag 23. Juli 2006, 02:04
von Masaru
Probier das mal:

Code: Alles auswählen

import socket
ip = socket.gethostbyname(socket.getfqdn())
Gruß,
>>Masaru<<

Verfasst: Montag 24. Juli 2006, 06:02
von Whitie
Danke für die Antwort, leider ergibt der Code auch nur 127.0.0.1

Hat noch jemand einen Vorschlag ?

Gruß, Whitie

Verfasst: Montag 24. Juli 2006, 07:40
von gerold
Whitie hat geschrieben:Hat noch jemand einen Vorschlag?
Hi Whitie!

Du hast leider nicht dazugeschrieben, welches Betriebssystem du benutzt.

http://www.microsoft.com/technet/script ... x?mfr=true

mfg
Gerold
:-)

Verfasst: Montag 24. Juli 2006, 07:48
von Whitie
Sorry, ich nutze Kubuntu.
Das Programm soll aber später in einer gemischten Umgebung laufen.

In einer nur Linux oder nur Windows Umgebung hätte ich das Problem mit einem os.system(...) oder Ähnlichem gelöst.
Ich kann mir aber nicht vorstellen, dass das nicht mit Bordmitteln geht.

Na ja, danke erstmal für den Link, vielleicht programmiere ich einfach 2 Varianten, die dann je nach BS aufgerufen werden.

Gruß, Whitie

Verfasst: Montag 24. Juli 2006, 08:22
von gerold
Whitie hat geschrieben:vielleicht programmiere ich einfach 2 Varianten, die dann je nach BS aufgerufen werden.
Hi Whitie!

Dir wird wahrscheinlich nichts anderes übrig bleiben.

mfg
Gerold
:-)

Verfasst: Mittwoch 11. Juli 2007, 13:53
von fab
Hallo zusammen

Ich bin so frei und mache in diesem Thread weiter statt einen neuen zu eröffnen, da ich das gleiche Problem, aber keine Lösung habe.

Code: Alles auswählen

import socket

# System name
sys_name = socket.gethostname()
# IP adress
ip_addr = socket.gethostbyname(sys_name)

print ip_addr
Unter Windows funktioniert dies ohne Probleme, es wird die IP-Adresse der Netzwerkkarte angezeigt. Aber unter Linux zeigt er mir auch nur 127.0.0.1, resp. die IP-Adresse des Loopbacks an.

Wenn ich nun die IP-Adresse der Linux-Maschine will, muss ich dann mit ifconfig arbeiten, um an diese Informationen zu gelangen oder geht es auch einfacher oder eleganter?

Vielen Dank für eine mögliche Hilfe

Gruss Fabian

Verfasst: Mittwoch 11. Juli 2007, 14:39
von Y0Gi
Möglicherweise kannst du die Adresse irgendwo in /proc finden, das ist etwas direkter als den Output von ipconfig zu parsen.

Verfasst: Mittwoch 11. Juli 2007, 14:54
von veers
Wozu braucht ihr denn die externe IP Adresse? Was wenn es mehrere gibt? O_o

Verfasst: Mittwoch 11. Juli 2007, 15:11
von fab
@ Y0Gi, danke für den Hinweis

@ veers, ich brauche die LAN-IP-Adresse des Systems, damit später andere System auf diesen Rechner zugreifen können. Sprich ich schreibe sie eine Datei (um genau zu sein, wird sie für den URL gebraucht für einen Zugriff auf den Webserver. Ich hätte gerne die IP-Adresse, da ich das Script so auch verwenden kann, wenn kein DNS-Server im Netzwerk vorhanden ist) und übertrage die Datei auf die anderen Systeme. Meistens ist ja nur eine Netzwerkkarte auf einmal aktiviert, aber es könnte eventuell zu Problemen kommen, ohne weiter auf die Speziallfälle einzugehen.

Gruss Fabian

Verfasst: Mittwoch 11. Juli 2007, 15:30
von veers
Hm verbinde mit dem System dessen IP du wissen möchtest zu dem welches die IP später brauchst. Danach kannst du auf beiden Systemen die verwendete IP sehen. Ist nicht hübsch Funktioniert aber auch bei etwas komplexeren Netzwerkstrukturen/Routes.

;)