Haben Sie sich jemals gefragt, woher STCP weiß, wie es heißt? Im Verzeichnis >system>stcp befindet sich eine Datei namens host. Die Datei enthält eine Zeile, die den Namen des Moduls angibt. Sie können die Datei direkt bearbeiten oder anzeigen, aber ich empfehle Ihnen, den Befehl hostname zu verwenden. Ohne Argumente zeigt er den Inhalt der Datei host an.
Hostname athenavs bereit 13:46:51 |
Abbildung 1 - Anzeige des Hostnamens mit dem Befehl hostname |
Wenn Sie ein Argument angeben, wird der Inhalt der Hostdatei auf den Wert des Arguments gesetzt, und dieser wird zum STCP-Hostnamen.
hostname dies-ist-ein-test das-ist-ein-Test bereit 13:47:00 Wirtsname das-ist-ein-Test bereit 13:47:03 |
Abbildung 2 - Ändern des Hostnamens mit dem Befehl hostname |
Neben dem Befehl gibt es eine Programmierfunktion, die den Hostnamen zurückgibt
#include <stdio.h> #include <errno.h> #include <netdb.h> int errno; void exit (int); main () { char name [32]; if (gethostname (name, 32) < 0) { perror ("ex_gethostname: Error getting hostname"); exit (errno); } else printf ("hostname is %sn", name); |
Abbildung 3 - Programm mit der Funktion gethostname |
Eine Reihe von Subsystemen ist auf den Hostnamen angewiesen, um das Modul identifizieren zu können. Sie rufen den Namen ab und verwenden den Namen entweder als Zeichenkette oder lösen den Namen in eine IP-Adresse auf. Ist der Name nicht vorhanden, falsch, wird er in die falsche IP-Adresse aufgelöst oder kann er nicht aufgelöst werden, kann die Anwendung fehlschlagen oder fehlerhaft funktionieren.
Wenn Sie z. B. eine externe Authentifizierung über einen Radius-Server durchführen, wird die IP-Adresse des Moduls, die aus dem Hostnamen aufgelöst wird, im Radius-Anforderungspaket im Feld "NAS-IP-ADDRESS" gesendet. Ihr Radius-Server lehnt die Anforderung möglicherweise ab, wenn die IP-Adresse nicht eine ist, die er erwartet, oder wenn die angegebene Benutzer-ID nicht mit dieser IP-Adresse verbunden ist.
Der Befehl "hostname" ist Teil des Befehlsmakros "module_start_up". Es ist nicht notwendig, den Namen bei jedem Systemstart festzulegen, da der Name über alle Startvorgänge hinweg bestehen bleibt, aber es kann nicht schaden. Wichtig ist, dass der Name auf einen Wert gesetzt wird, der in die richtige IP-Adresse aufgelöst wird. Ein falscher Name oder eine falsche IP-Adressauflösung kann Subsysteme wie Radius, SSH oder Samba unbrauchbar machen.