LAN-IP rausfinden

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Benutzeravatar
Whitie
User
Beiträge: 216
Registriert: Sonntag 4. Juni 2006, 12:39
Wohnort: Schulzendorf

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
Benutzeravatar
Masaru
User
Beiträge: 425
Registriert: Mittwoch 4. August 2004, 22:17

Probier das mal:

Code: Alles auswählen

import socket
ip = socket.gethostbyname(socket.getfqdn())
Gruß,
>>Masaru<<
Benutzeravatar
Whitie
User
Beiträge: 216
Registriert: Sonntag 4. Juni 2006, 12:39
Wohnort: Schulzendorf

Danke für die Antwort, leider ergibt der Code auch nur 127.0.0.1

Hat noch jemand einen Vorschlag ?

Gruß, Whitie
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

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
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
Whitie
User
Beiträge: 216
Registriert: Sonntag 4. Juni 2006, 12:39
Wohnort: Schulzendorf

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
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

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
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
fab
User
Beiträge: 8
Registriert: Mittwoch 13. Juni 2007, 22:06
Wohnort: Bern

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
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Möglicherweise kannst du die Adresse irgendwo in /proc finden, das ist etwas direkter als den Output von ipconfig zu parsen.
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Wozu braucht ihr denn die externe IP Adresse? Was wenn es mehrere gibt? O_o
fab
User
Beiträge: 8
Registriert: Mittwoch 13. Juni 2007, 22:06
Wohnort: Bern

@ 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
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

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.

;)
Antworten