• 8102阅读
  • 8回复

[提问]Qt 获取网卡时,对网卡状态的判断 [复制链接]

上一主题 下一主题
离线小鸟一只
 
只看楼主 倒序阅读 楼主  发表于: 2013-02-20
关键词: QT4网卡
Hello,各位,

在使用Qt编程获取PC网卡信息时,如何判定网卡是处于断开状态,还是处于禁用状态,还是处于有连接但是没有拿到IP的状态,还是处于正常状态?
本人使用过了QNetworkInterface中的InterfaceFlags进行过滤,效果不理想,当网卡处于断开状态下依然不能被过滤掉。

多谢!
离线XChinux

只看该作者 1楼 发表于: 2013-02-20
Qt没有方法判断吧,找系统API吧。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线kimtaikee

只看该作者 2楼 发表于: 2013-02-20
根据ping的返回结果判断

只看该作者 3楼 发表于: 2013-02-20
请问qt可以对显卡直接操作不?
离线roywillow

只看该作者 4楼 发表于: 2013-02-20
关注一下
我记得好像在哪里看到了qt5里提供了对无线网卡的一些控制函数?
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线小鸟一只
只看该作者 5楼 发表于: 2013-03-04
多谢各位的解答哈。现在这个问题已经解决了,还是通过QNetworkInterface中的InterfaceFlags进行判断的,是用得是位操作的方法实现的,具体代码如下,
QNetworkInterface::InterfaceFlags interFlags;
interFlags = interface.flags();

if((interFlags&QNetworkInterface::IsUp) &&
(interFlags&QNetworkInterface::IsRunning) &&
(interFlags&QNetworkInterface::CanBroadcast) &&
(interFlags&QNetworkInterface::CanMulticast) &&
!(interFlags&QNetworkInterface::IsLoopBack))
这样就能将获取到的禁用的、没获取到IP的、没插网线的、及具有回环IP的网卡给过滤掉。
离线小鸟一只
只看该作者 6楼 发表于: 2013-03-04
回 2楼(kimtaikee) 的帖子
直接用ping来进行判断不是很好吧,这样对判断有没有联外网是个好办法。
离线小鸟一只
只看该作者 7楼 发表于: 2013-03-04
回 1楼(XChinux) 的帖子
版主,弱弱地问一下,如何结贴啊?
离线XChinux

只看该作者 8楼 发表于: 2013-03-04
改一下标题就行了。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个