我想檢測現在連接了哪個接口;我有三個3g調制解調器連接和兩個局域網連接到服務器(我的設備不支持wlan)。我的意思是連接的類型並不重要,但接口名稱和細節對我來說很重要。我想檢測我用C++編寫的程序中的連接接口。 ?請告訴我如何檢測在C連接的接口++(root權限是沒有問題的。)在linux中使用C++檢測連接的接口
4
A
回答
3
5
使用ioctl
SIOCGIFFLAGS
檢查是界面運行起來:
struct ifreq ifr;
memset(&ifr, 0, sizeof(ifr));
strcpy(ifr.ifr_name, ifrname);
if(ioctl(dummy_fd, SIOCGIFFLAGS, &ifr) != -1)
{
up_and_running = (ifr.ifr_flags & (IFF_UP | IFF_RUNNING)) == (IFF_UP | IFF_RUNNING);
}
else
{
// error
}
輸入變量是ifrname
。它應該是接口名稱「eth0的」,eth1" 的,‘ppp0的’......
因爲ioctl()
需要一個文件描述符作爲參數,你可以使用例如用於一些臨時UDP套接字:
dummy_fd = socket(AF_INET, SOCK_DGRAM, 0);
記得關閉插座,當不再使用。
1
你也可以使用netlink路由套接字。請參閱libnetlink庫或man 7 netlink和man 7 rtnetlink。
相關問題
- 1. 在C#中檢測網絡狀態(連接 - 斷開連接)
- 2. 檢測連接
- 3. 使用C/C++接口的人臉檢測庫
- 4. 在C++中使用C#接口或在C#中使用C++接口
- 5. 在c中使用接口#
- 6. 連接池檢測
- 7. 在linux中檢測屏幕斷開連接
- 8. 如何在linux/Qt中檢測USB連接
- 9. 在Linux中檢測網絡連接類型
- 10. 如何檢測C中的套接字斷開連接#
- 11. 使用mono在linux中檢查互聯網連接?
- 12. 如何使用C/C++在Windows中確定連接的WLAN WLAN接口?
- 13. C#檢測遠程協助連接
- 14. 檢測USB連接 - C#.Net CF 3.5
- 15. 檢查連接是否打開或關閉?(在Linux中爲C)
- 16. C socket(Linux)不會連接
- 17. 檢測到域的連接
- 18. Linux下C++中的SSH連接
- 19. 檢測傳入的套接字連接
- 20. 在StructureMap中連接通用接口
- 21. 用C Linux的網絡接口使用監控/ C++
- 22. 使用C/C++與mySQL數據庫進行接口連接?
- 23. 在.NET中檢測3G網絡連接
- 24. 檢測Internet連接,如在Gmail中Javascript
- 25. 在WinPE中檢測AC電源連接?
- 26. 在android中檢測互聯網連接
- 27. C#,使用接口
- 28. 在C中使用接口的問題#
所以......除了想要東西的哲學之外,還有一個問題嗎? – WhozCraig 2013-04-10 05:53:29
@WhozCraig yes;如何? – Lrrr 2013-04-10 06:36:14