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.
Ngôn ngữ? C/C++? – Paul
có thư viện Paul c/C++ – Ashish