[Actualizado] apihack sencilla API hacker para programadores C.

Saludos, comunidad de software libre. En esta entrada pongo disponible una librería de C que estoy desarrollando a medida que voy creando proyectos. Se trata de una sencilla API de C con funciones que muchos desarrolladores realmente desean estuvieran disponibles en algún lenguaje de programación. Por ejemplo observe el código siguiente.

Como verán he implementado una sencilla orientación a objetos sobre C. Aunque C no fue diseñado inicialmente orientado a objetos es sencillo implementar esto.

#include "apihack.h"

int main(int argc, char *argv[])
{

char *cad, *mac1 = NULL;
const char **dns;
int y;

NET *nt = NULL;

nt = net_new();

net_set_interf(nt, "wlp16s0");
net_activate_interf(nt);

cad = net_wifi_get_ssid(nt);
puts(cad);
cad = net_wifi_get_signal(nt);
puts(cad);
cad = net_get_ip(nt);
puts(cad);
mac1 = net_get_mac(nt); /* Salvar mac anterior para restaurar luego */
puts(mac1);
cad = net_get_gateway(nt);
puts(cad);

dns = net_get_dns_list();
while(dns[y] != NULL)
puts(dns[y++]);

net_stop_nmanager();

net_set_mac(nt, "54:04:a6:45:d4:80");
net_set_ip(nt, "7.7.7.24");
net_set_gateway(nt, "7.7.7.1");
net_apply_config(nt);
cad = net_get_mac(nt);
puts(cad);

net_set_mac(nt, mac1);
net_apply_config(nt);
cad = net_get_mac(nt);
puts(cad);

net_start_nmanager();

return 0;
}

Realmente se puede ver cuán fácil es administrar una red wifi de esta manera, aunque . Aunque esta API está escrita en C puede compilarse como una librería estática o dinámica y de esta manera utilizarla en lenguajes como python o java por ejemplo.

Hoy en día existen cientos de lenguajes pero casi todos son más de lo mismo. Tienen muchísimas facilidades pero a menudo no las funciones que realmente necesitamos para crear de manera rápida el software y a menudo complejizando la programación. Por ejemplo ahora será más difícil programar una aplicación openGL 3 con la nueva estructura comparado con la estructura anterior, ahora hay que definir un shader… y tenemos que escribir aún más código que con opengl 2.

Para usar esta API coloque los archivos de encabezados (.h) en la misma carpeta de tu proyecto los incluyes con #include «apihack.h«, recuerde que en lenguaje C las comillas significan buscar en la misma carpeta, si usa <> se buscan los archivos en /usr/include

En el archivo netproto.h puede informarse de las definiciones de las funciones. No necesita enlazar nada con -l puesto que esta librería se compila junto con tu ejecutable.

¿Te resultó interesante? Compártelo ...



haylem

Publicado por haylem

Facebook » Google+ » Forma parte de GUTL desde el 9 diciembre, 2013. Me gusta la programación y la electrónica. Me encanta el soft libre y los sistemas que enseñan a trabajar. Me gusta buscar en lo dificil y aprender cosas nuevas. Nací el 4 de Nov 1988 y vivo en el vedado.

Este artículo tiene 4 comentarios

  1. Genial…. ahora a investigar como crear algo parecido con Python que use tu biblioteca (ya me han jalado las orejas par de veces por eso de decirle «librería» a las «bibliotecas»…. puristas 😉 ) y lo combine con GTK, Zenity, Qt o lo que sea que nos saque de la CLI que no todos ven con buenos ojos ese fondo oscuro y las letricas que tanto amo….

    Ah y gracias por darle a este modesto editor algo en lo que trabajar (usar tags y formato de texto para resaltar algunas cosas del post y así intentar maximizar la captura de atención en las partes importantes)

    • En UNIX siempre fue libreria en windows se empezo a llamar biblioteca dll de hecho la palabra dll simula libros si miras la d es el borde del estante y y las 2 eles son los libritos recostados a la d DLL

      • Para usar esta libreria con python se debe compilar como una libreria .so y luego despe pyhton u otro lenguaje se pueden importar los simbolos dinamicamente del archivo proto una vez se copile de esta forma las funciones son accesibles desde cualquier lenguaje se pudieranusar hasta desde nodejs

Los comentarios están cerrados.