Passa al contenuto principale

Ti sei mai chiesto come fa STCP a sapere qual è il suo nome? Nella directory >system>stcp c'è un file chiamato host. Il file contiene una riga che è il nome del modulo. Puoi modificare o visualizzare il file direttamente, ma ti consiglio di usare il comando hostname. Senza argomenti, visualizzerà il contenuto del file host.

hostname
athenavs
pronto  13:46:51
Figura 1 – Visualizza il nome host con il comando hostname

Se si fornisce un argomento, il contenuto del file host verrà impostato sul valore di tale argomento, che diventerà il nome host STCP.

hostname questo-è-un-test
questo-è-un-test
pronto  13:47:00

hostname
questo-è-un-test
pronto  13:47:03
Figura 2 – Modifica il nome host con il comando hostname

Oltre al comando è disponibile una funzione di programmazione per restituire il nome dell'host

#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);
Figura 3 – Programma che utilizza la funzione gethostname

Numerosi sottosistemi si basano sul nome host per poter identificare il modulo. Essi recuperano il nome e lo utilizzano come stringa di caratteri oppure lo risolvono in un indirizzo IP. Se il nome non è presente, è errato, viene risolto in un indirizzo IP errato o non può essere risolto, l'applicazione potrebbe non funzionare o funzionare in modo errato.

Ad esempio, se si esegue l'autenticazione esterna tramite un server Radius, l'indirizzo IP del modulo, risolto dal nome host, viene inviato nel pacchetto di richiesta Radius nel campo NAS-IP-ADDRESS. Il server Radius potrebbe rifiutare la richiesta se l'indirizzo IP non è quello previsto o se l'ID utente fornito non è associato a tale indirizzo IP.

Il comando hostname fa parte della macro di comando module_start_up. Non è necessario impostare il nome ogni volta che il sistema si avvia, poiché il nome rimane invariato tra un avvio e l'altro, ma non fa male farlo. L'importante è assicurarsi che il nome sia impostato in modo da risolversi nell'indirizzo IP corretto. Un nome errato o una risoluzione IP errata potrebbero rendere inutilizzabili sottosistemi come Radius, SSH o Samba.