2011-12-28 20 views
6

Tôi muốn triển khai chương trình quản lý WiFi cần xử lý những điều sau đây.thư viện c/C++ nào có thể được sử dụng để xử lý các kết nối wifi cho Linux?

  • thông báo trên điểm truy cập wifi đã đến hoặc đi
  • cung cấp thông tin của điểm truy cập wifi có sẵn
  • kết nối/ngắt kết nối với một điểm truy cập wifi cho

nào là đề nghị C/C + + WiFi thư viện cho Linux để đạt được điều này?

+0

Ngôn ngữ? C/C++? – Paul

+0

có thư viện Paul c/C++ – Ashish

Trả lời

4

On Fedora (ít nhất), cách ưa thích để tương tác với NetworkManager là thông qua dbus.

Trong khi wireless-tools và những thứ tương tự sẽ làm việc - ngay cả các cuộc gọi hạt nhân trực tiếp, nếu quý vị phải - có một vài vấn đề:

  • Bạn có lẽ sẽ cần phải đặc quyền superuser
  • NetworkManager lẽ sẽ có một cuộc tấn công hoảng loạn và chiến đấu với bạn, trừ khi bạn ngừng dịch vụ
  • Điều khiển mạng bình thường của người dùng (ví dụ: biểu tượng khay máy tính để bàn) gần như chắc chắn được định cấu hình để sử dụng NetworkManager.

Bạn có thể gửi và nhận tin nhắn DBus cho tất cả các tác vụ bạn đã đề cập, cho WiFi cũng như các loại giao diện mạng tùy ý khác. API được xuất bản here, for version 0.8.

Đối với các hệ điều hành mới hơn, có vẻ như changes in the API, with a migration guide.

wiki của họ phải thực sự hữu ích.

Tôi biết cả Fedora và Ubuntu đều sử dụng NetworkManager theo mặc định; Tôi tin rằng nhiều hệ thống khác cũng vậy, nhưng không có danh sách đầy đủ.

Tất nhiên, nếu bạn đang sử dụng hệ thống nhúng, phân phối tùy chỉnh hoặc thứ gì đó, thì số dặm của bạn có thể thay đổi.

1

Tôi khuyên bạn nên sử dụng trực tiếp NetworkManager Library.

Bạn có thể sử dụng ở mức độ thấp thư viện D-Bus hoặc libnm-glib thư viện, mà làm cho giao tiếp dễ dàng hơn: example add connection glib

Mọi chi tiết, bạn có thể có một cái nhìn vào mã của dòng lệnh client nmcli .

Các vấn đề liên quan