2011-12-28 17 views
6

Quiero implementar el programa de administrador WiFi, que debe manejar lo siguiente.qué biblioteca c/C++ se puede usar para manejar conexiones wifi para Linux?

  • notificación en el punto de acceso Wi-Fi ha llegado o se han ido
  • proporcionan información del punto de acceso WiFi disponibles
  • de conexión/desconexión con un punto de acceso wifi dado

Cuál es el biblioteca de C/C++ WiFi recomendada para Linux para lograr esto?

+0

Idioma? C/C++? – Paul

+0

sí Paul c/C++ library – Ashish

Respuesta

4

En Fedora (al menos), la forma preferida para interactuar con NetworkManager es a través de DBus.

Mientras wireless-tools y similares funcionará - incluso las llamadas directas del kernel, si tiene que - hay un par de problemas:

  • es probable que tengas privilegios de superusuario
  • NetworkManager probablemente tendrá un ataque de pánico y entrar en peleas con usted, a menos que detenga su servicio
  • Los controles de red normales del usuario (por ejemplo, los iconos de la bandeja de escritorio) casi con seguridad están configurados para usar NetworkManager.

Puede enviar y recibir mensajes DBus para todas las tareas que ha mencionado, tanto para WiFi como para otros tipos arbitrarios de interfaces de red. La API se publica here, for version 0.8.

Para sistemas operativos más recientes, aparentemente hay changes in the API, with a migration guide.

Su wiki debería ser realmente útil.

Sé que tanto Fedora como Ubuntu usan NetworkManager de manera predeterminada; Creo que muchos otros sistemas también lo hacen, pero no tienen una lista exhaustiva.

Por supuesto, si usa un sistema integrado, una distribución personalizada o algo así, su millaje puede variar.

1

Yo recomendaría usar directamente el NetworkManager Library.

Puede utilizar la biblioteca D-Bus de bajo nivel o libnm-labia biblioteca, que hace más fácil la comunicación: example add connection glib

Para obtener más información, se puede echar un vistazo en el código del cliente de línea de comandos nmcli .

Cuestiones relacionadas