我想檢測現在連接了哪個接口;我有三個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. 在Linux中使用特定接口連接
- 2. Linux中的C++流接口
- 3. 在C#中檢測網絡狀態(連接 - 斷開連接)
- 4. 檢查lan設備是否使用linux中的C++連接
- 5. 檢測連接
- 6. 檢測連接
- 7. 在連接之前檢測Redis連接
- 8. 使用C/C++接口的人臉檢測庫
- 9. 在C++中使用C#接口或在C#中使用C++接口
- 10. 如何使用持久連接在Playframework中使用WS檢測連接關閉?
- 11. 在c中使用接口#
- 12. 檢測一個MIDI接口連接在網絡MIDI API
- 13. 檢測RDP連接
- 14. 檢測HDMI連接
- 15. 連接池檢測
- 16. 如何在linux/Qt中檢測USB連接
- 17. 如何在linux中檢測攝像頭斷開連接?
- 18. 在linux中檢測屏幕斷開連接
- 19. 在Linux中檢測網絡連接類型
- 20. 如何檢測C中的套接字斷開連接#
- 21. 檢測控制檯應用程序中的Internet連接/斷開連接C#
- 22. 檢測字符設備是否在Linux中與termios api(C++)斷開連接
- 23. 使用JavaScript檢測互聯網連接
- 24. 如何使用C/C++在Windows中確定連接的WLAN WLAN接口?
- 25. 使用mono在linux中檢查互聯網連接?
- 26. C#檢測遠程協助連接
- 27. 檢測USB連接 - C#.Net CF 3.5
- 28. c#Compact Framework檢測連接已關閉
- 29. 檢測斷開連接Winsock C++
所以......除了想要東西的哲學之外,還有一個問題嗎? – WhozCraig 2013-04-10 05:53:29
@WhozCraig yes;如何? – Lrrr 2013-04-10 06:36:14