我需要在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. 在C#中更改IP地址
- 2. 如何在C#中更改公共IP地址
- 3. 如何檢測IP地址更改?
- 4. 如何更改phpmyadmin MySQL的IP地址?
- 5. 如何更改UdpClient IP地址?
- 6. 如何更改eve的IP地址?
- 7. 在VB.Net中更改IP地址
- 8. 更改程序IP地址
- 9. 更改EC2實例的公共IP地址彈性IP地址
- 10. 如何在python中更改IP地址時可視化?
- 11. 在C#中相同LAN上的IP地址到MAC地址的IP地址
- 12. 如何在客戶端的IP地址更改
- 13. 如何檢測Android中的Wi-Fi IP地址更改
- 14. 如何檢查VB.NET中的IP地址更改?
- 15. 更改OpenShift Origin VM的IP地址
- 16. 更改Team Foundation Server 2013的IP地址
- 17. CDH 5.1主機IP地址更改
- 18. Python使用WMI更改IP地址
- 19. 更改docker橋的IP地址池
- 20. 使用腳本更改solaris IP地址
- 21. 更改容器分配的IP地址
- 22. C#如何更改ip public?
- 23. NetworkChange類的本地等價物;如何在Windows中查看IP地址更改
- 24. 如何將IP地址解析爲Haskell中的IP地址?
- 25. 如何從IP地址列表中查找IP地址範圍
- 26. 如何用頁面中的IP地址替換IP地址中的IP地址(例如「國家,地區,城市」)
- 27. C#如何欺騙WebRequest的IP地址
- 28. 如何將我的IP地址更改爲給定地址並訪問網站
- 29. 在C中模擬多個IP地址#
- 30. 使用maskedtextctrl在C#中的IP地址
謝謝。我最終使用了ioctl,通過您提供的第一個鏈接瞭解了這一點。 – 2008-12-19 21:28:54
文檔/網絡下究竟要讀什麼? – 2017-09-08 14:48:52