Un poco de C

Ya avise cuando comencé con esta pagina que no solo hablaría sobre de Delphi. Así que voy a poner por aquí un nuevo juguete con el que estoy entretenido desde hace unos días. Se trata de un pequeño servidor web realizado en C y pensado para ser utilizado en linux. Para hacernos una idea de lo pequeño que es basta decir que el código cuenta con solo unas 600 lineas.

Descifrar base64

Siguiendo con la serie de funciones destinadas a crear nuestro pequeño servidor, vamos a ver una función para descifrar una cadena de texto cifrada en base64. Esta función nos sera útil cuando implementemos la identificación de usuarios, es un sistema muy simple, así que solo nos dará un nivel de seguridad básico aunque suficiente para este proyecto.

Url encode / decode

Hoy comienzo con una serie de funciones destinadas a montar un pequeño servidor web. Y cuando digo pequeño, me refiero a que sera pequeño de verdad, menos de 100kb. Pero vamos a ir poco a poco, las dos primeras funciones que vamos a ver son URLEncode y URLDecode. Estas funciones permiten codificar una cadena de texto según se describe en RFC 1738, es decir, los caracteres no alfanuméricos son sustituidos por el símbolo % seguido de dos números hexadecimales.

Calcular hash md5

El siguiente código muestra como usar la API de windows para calcular el hash md5, de un stream, de un archivo y de una cadena de texto.

Optimizar archivo jpeg

Los archivos Jpeg además de la propia imagen contienen información extra añadida por algunos programas (comentarios, tipo de cámara, thumbnails, etc) que engordan el archivo pero que no son necesarios para ver la imagen.

Interprete de Brainfucker

La wikipedia define este lenguaje de la siguiente manera:
"Brainfuck (jodecerebros) es un lenguaje de programación esotérico, diseñado por Urban Müller en 1993, con el objetivo de hacer un lenguaje que fuera a la vez muy simple, Turing completo y que requiriese un compilador pequeño. Müller basó Brainfuck en la máquina de Turing."

Controlar dispositivos por el puerto serie

Si alguna vez has pensado en controlar algún dispositivo desde tu PC puede que este truco pueda servirte. En este caso se activa o desactiva un rele, que a su vez actúa como un interruptor que permite encender o apagar "cualquier cosa" (una luz, una puerta automática, etc.).

Comprobar si un puerto esta ocupado

El siguiente código muestra como comprobar si un puerto tcp esta siendo utilizado.

Subir captura de pantalla a un ftp

El siguiente código muestra como capturar la pantalla y guardar la imagen en un archivo jpeg, que luego subimos a un servidor ftp. Para subir el archivo utilizamos WinInet.

Averiguar la IP publica del router

Para averiguar la ip publica del router, podemos hacer una petición a la pagina http://dynupdate.no-ip.com/ip.php que devuelve la dirección del que solicita la pagina. El código, usando WinInet, seria el siguiente:

Distribuir contenido