我需要在C++中做一些與網絡有關的事情,我通常會在Linux中使用ifconfig
,但是我想在不解析一組系統調用的輸出的情況下執行此操作。可以使用哪些C或C++庫來判斷網絡適配器是啓動還是關閉,讀取或更改適配器的IP地址和網絡掩碼,並更改默認的DNS網關?如何在C++中更改IP地址?
3
A
回答
4
基本上,您需要使用套接字句柄(SIOCGIFADDR,SIOCADDRT)進行一堆ioctl調用。您可以在Documentation/networking下找到在Linux內核源代碼中使用它的示例程序。其他一些鏈接,可能會有所幫助:
- Network Interface operations on AIX
- XBMC's implementation(看看CNetworkInterfaceLinux)
編輯:我還要補充一點,如果你的目標是桌面Linux,那麼你可以考慮使用DBUS API使用NetworkManager查詢網絡參數。
- http://people.redhat.com/dcbw/NetworkManager/NetworkManager DBUS API.txt(對不起,有一些問題將在修改鏈接)
4
您可以隨時看的ifconfig的源代碼,看看他們如何在第一時間做到了:http://archive.ubuntu.com/ubuntu/pool/main/n/net-tools/net-tools_1.60.orig.tar.gz
0
NetworkManager服務公開了一個API,通過dbus來查詢/操縱當今許多發行版的網絡。這可能對您而言過於高級(例如,您需要對網絡進行更好的控制,或者dbus/NetworkManager在系統上不可用),但它可能會爲您提供所需的功能。
檢查出dbus C++ bindings和NetworkManager API(對不起,我現在找不到更好的格式化版本,但信息在那裏)。
相關問題
- 1. 如何自動更改ip地址c#
- 2. 在C#中更改IP地址
- 3. 如何在C#中更改公共IP地址
- 4. 如何更改eve的IP地址?
- 5. 如何檢測IP地址更改?
- 6. 如何更改UdpClient IP地址?
- 7. 如何更改phpmyadmin MySQL的IP地址?
- 8. wpf - 如何更改IP地址?
- 9. 在ruby中更改IP地址
- 10. 在PowerShell中更改IP地址
- 11. 在VB.Net中更改IP地址
- 12. 更改IP地址格式
- 13. 更改程序IP地址
- 14. ip地址更改通知
- 15. 如何在C#中驗證IP地址
- 16. 更改EC2實例的公共IP地址彈性IP地址
- 17. 在C中更改IIS7綁定的IP地址#
- 18. 如何在python中更改IP地址時可視化?
- 19. 在IP頭中分配IP地址C
- 20. 在C#中相同LAN上的IP地址到MAC地址的IP地址
- 21. 如何更改本地機器/以太網ip地址
- 22. 使用WMI/Win32_NetworkAdapterConfiguration查詢C#中的IP地址更改
- 23. 如何更改XAMPP for Windows中的IP地址?
- 24. 如何檢查VB.NET中的IP地址更改?
- 25. 如何檢測Android中的Wi-Fi IP地址更改
- 26. 如何在virtualbox上更改Android模擬器的IP地址?
- 27. 如何在客戶端的IP地址更改
- 28. 更改Team Foundation Server 2013的IP地址
- 29. Devstack - 安裝後更改IP地址
- 30. 私人IP地址可以更改嗎?
謝謝。我最終使用了ioctl,通過您提供的第一個鏈接瞭解了這一點。 – 2008-12-19 21:28:54
文檔/網絡下究竟要讀什麼? – 2017-09-08 14:48:52