Hallo.
Wie kann ich unter Python den Namen des aktuellen Rechners ausgeben?
Wäre wirklich gut das zu wissen.
Gruß sprudel
Rechnername ausgeben
Was ist der "Name des Rechners"? Eine Eigenschaft des von Dir eingesetzten Betriebssystems?
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
Code: Alles auswählen
import socket
socket.gethostname()
Der Name muss nicht existieren (auf jeder Plattform) und ein Rechner kann auch mehrere Namen haben.
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);
}
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<<