Información sobre el ordenador central

ordenador3d_8012Al igual que puede determinar información sobre el usuario, un programa puede establecer detalles sobre el ordenador en el cual se está ejecutando. El comando uname proporciona dicha información. uname existe también como llamada al sistema para proporcionar la misma información en un programa C, compruébelo en la sección relativa a las llamadas al sistema en la página de consulta usando man uname(en español).

consejo1La información sobre el ordenador central puede resultar útil en diferentes ocasiones. Es posible que desee personalizar el comportamiento de un programa, dependiendo del nombre del ordenador que se está ejecutando en una red, es decir, el ordenador de un estudiante o el de un administrador. En lo referente a las licencias, es posible que desee restringir un programa para que se ejecute únicamente en un ordenador. Todo ello significa que necesita un modo para establecer en qué ordenador se está ejecutando el programa.

Si el sistema tiene componentes de red instalados, podremos obtener el nombre de red fácilmente gracias a la función gethostname:

gethostname1La función gethostname escribe el nombre de red del ordenador en la cadena name.

gethostname2Esta cadena debería tener, como mínimo, namelen caracteres de largo.

gethostname3gethostname envía 0 si tiene éxito y -1 en el caso contrario.

Puede obtener información más detallada sobre el ordenador central a partir de la llamada al sistema uname:

uname1La función uname escribe la información sobre el ordenador central en la estructura que indica el parámetro name.

uname2La estructura utsname, definida en sys/utsname.h, debe contener como mínimo estos miembros:

estructura_utsnameuname envía un entero positivo si tiene éxito, y -1 si falla, con errno para indicar cualquier error.

El programa hostget.c, que veremos a continuación, extrae información sobre el ordenador central:

hostget_listadoProporciona la siguiente salida específica de Linux. Si su máquina está conectada en red, es posible que vea otro nombre que incluye la red:

hostget_salidaEste programa llama a gethostname para obtener el nombre de red del ordenador principal.

gethostname_1La llamada uname envía más información sobre este ordenador.

gethostname_2A partir de la función gethost, se puede obtener un identificador único para cada ordenador central:

gethostidLa función gethostid está pensada para enviar un valor único sobre el ordenador central. Los gestores de licencia lo usan para comprobar que los programas de software se ejecutan una única vez en los ordenadores que tienen licencias válidas. En las estaciones Sun, envía un número que se configura en la memoria no volátil cuando se crea el ordenador, y que es, por lo tanto, único del hardware del sistema. Otros sistemas, como Linux, envían un valor basado en la dirección de Internet del ordenador, que no suele ser lo suficientemente seguro como para usarlo para cuestiones de seguridad.

atras

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s