Rechnername ausgeben

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
sprudel
User
Beiträge: 245
Registriert: Donnerstag 8. März 2007, 17:12

Rechnername ausgeben

Beitragvon sprudel » Montag 12. März 2007, 15:48

Hallo.
Wie kann ich unter Python den Namen des aktuellen Rechners ausgeben?
Wäre wirklich gut das zu wissen.

Gruß sprudel
BlackJack

Beitragvon BlackJack » Montag 12. März 2007, 16:06

Was ist der "Name des Rechners"? Eine Eigenschaft des von Dir eingesetzten Betriebssystems?
sprudel
User
Beiträge: 245
Registriert: Donnerstag 8. März 2007, 17:12

Beitragvon sprudel » Montag 12. März 2007, 16:09

Eben dieser Name den der Rechner auch im Internet hat. Den den man bei Linux beispielsweise mit dem Befehl 'hostname' rauskriegt. Ich will ihn aber betriebssystemübergreifend ausgeben. Ich denk mal dafür gibt es irgendeinen Befehl
Benutzeravatar
Dill
User
Beiträge: 470
Registriert: Mittwoch 10. Januar 2007, 14:52
Wohnort: Köln

Beitragvon Dill » Montag 12. März 2007, 16:33

Code: Alles auswählen

import socket
socket.gethostname()


(kann sein, dass es auch einfacher geht.)
BlackJack

Beitragvon BlackJack » Montag 12. März 2007, 16:33

Der Name muss nicht existieren (auf jeder Plattform) und ein Rechner kann auch mehrere Namen haben.
Benutzeravatar
Dill
User
Beiträge: 470
Registriert: Mittwoch 10. Januar 2007, 14:52
Wohnort: Köln

Beitragvon Dill » Montag 12. März 2007, 16:34

hmm, stimmt ...
was macht socket.gethostname() dann?
Benutzeravatar
Masaru
User
Beiträge: 425
Registriert: Mittwoch 4. August 2004, 22:17

Beitragvon Masaru » Dienstag 13. März 2007, 14:39

Dill hat geschrieben:...
was macht socket.gethostname() dann? ...


Code: Alles auswählen

socket_gethostname(PyObject *self, PyObject *unused)
{
   char buf[1024];
   int res;
   Py_BEGIN_ALLOW_THREADS
   res = gethostname(buf, (int) sizeof buf - 1);
   Py_END_ALLOW_THREADS
   if (res < 0)
      return set_error();
   buf[sizeof buf - 1] = '\0';
   return PyString_FromString(buf);
}


Tjoa .. ruft die C Methode 'gethostname' [Zeile: 6] (in den entsprechenden Plattform spezifischen Bibliotheken: z.B. adressiert über die Header File winsocket.h unter Windows, ...) auf.

Je nach Implementierung und Konfiguration (z.B. in Verbindung mit vorhandensein einer Netzwerkkarte, um überhaupt einen Computernamen einzutragen) fällt die Rückgabe unterschiedlich aus.

Wird z.B. das Windows Socket System angesprochen, so ist eine Bedingung von gethostname, dass der ermittelte Name ein gültiger Wert sein muss, damit die Methoden gethostbynameoder WSAAsyncGetHostByNamediesen auflösen können (entsprechend also eine IP zurückliefern).

Zudem könnte es sein, dass eine Socket-Error eintritt, z.B. aufgrund eines nicht ordentlich gestarteten/unterbrochenen/etc. Netzwerk-Subsystems, so dass auch in diesem Falle kein eindeutiger Wert zur Ermittlung des Rechnernamens zurückgeliefert wird.

Gruß
>>Masaru<<

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot], Mephisto