Programa CGI: Lectura de variables de ambiente

En esta ocasion muestro como se pueden leer las variables de ambiente. Recordemos que las variables de ambiente son variables que existen dentro de cada cliente y nos permiten recuperar ciertas caracteristicas acerca de dicho cliente y del servidor donde se ejecuta el programa CGI. Bueno aca el programa fuente:

/*
	Instituto Tecnologico de Zacatepec
 Descripcion:		Lectura de las variables de ambiente con C
 Author: 	Gonzalo Silverio	gonzasilve@gmail.com
 Archivo:	leerVariablesCGI.c
*/

#include<stdio.h>
#include<stdlib.h>

// almacenamiento temporal de la variable de ambiente
char * cp;
char * empty = "<empty>";

main(int argc, char ** argv)
{
  // enviar el encabezado de tipo mime
  printf("Content-type: text/html\n\n");

  // Macro para desplegar la variables de ambiente
  #define safenv(a) ((cp = getenv(a)) ? cp : empty)

//Titulo de la pagina web
 printf("<HTML><HEAD><TITLE>Leer Variables de ambiente</TITLE></HEAD>\n");
//Cuerpo de la pagina web
 printf("<BODY><br><b>Las Variables de ambiente son:</b><br><br>");

  // A continuacion vamos a desplegar todas las variables estandar de CGI
  printf("GATEWAY_INTERFACE = %s <br>",safenv("GATEWAY_INTERFACE"));
  printf("REQUEST_METHOD = %s <br>",safenv("REQUEST_METHOD"));
  printf("SCRIPT_NAME = %s <br>",safenv("SCRIPT_NAME"));
  printf("QUERY_STRING = %s <br>",safenv("QUERY_STRING"));
  printf("SERVER_SOFTWARE = %s <br>",safenv("SERVER_SOFTWARE"));
  printf("SERVER_NAME = %s <br>",safenv("SERVER_NAME"));
  printf("SERVER_PROTOCOL = %s <br>",safenv("SERVER_PROTOCOL"));
  printf("SERVER_PORT = %s <br>",safenv("SERVER_PORT"));
  printf("HTTP_USER_AGENT = %s <br>",safenv("HTTP_USER_AGENT"));
  printf("HTTP_ACCEPT = %s <br>",safenv("HTTP_ACCEPT"));
  printf("PATH_INFO = %s <br>",safenv("PATH_INFO"));
  printf("PATH_TRANSLATED = %s <br>",safenv("PATH_TRANSLATED"));
  printf("REMOTE_HOST = %s <br>",safenv("REMOTE_HOST"));
  printf("REMOTE_ADDR = %s <br>",safenv("REMOTE_ADDR"));
  printf("REMOTE_USER = %s <br>",safenv("REMOTE_USER"));
  printf("REMOTE_IDENT = %s <br>",safenv("REMOTE_IDENT"));
  printf("AUTH_TYPE = %s <br>",safenv("AUTH_TYPE"));
  printf("CONTENT_TYPE = %s <br>",safenv("CONTENT_TYPE"));
  printf("CONTENT_LENGTH = %s <br>",safenv("CONTENT_LENGTH"));
  printf("</BODY>");
}

aka la compilacion:

Compilacion lectura de variables de ambiente

…y ahora la ejecucion en el navegador, como se ve algunas variables no tienen valor, lo que quiere decir que tienen un valor 0 ho que simplemente no tienen nada.

Ejecucion de prog. CGI que lee variables de ambiente.

bueno eso es todo y espero comentarios o dudas.

Acerca de gonzasilve
Freelance Web Developer.

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

A %d blogueros les gusta esto: