需求
使用Qt软件开发一个检测网卡的功能。 兼容windows、linux,国产麒麟系统(同为linux)
Demo
windows上运行:
国产麒麟操作上运行:
<br>
功能描述 v1.1.0
- windows上实时检测出网卡通断(插拔,失联等情况)
- linux上实时检测出网卡通断(插拔,失联等情况)
- 国产银河麒麟操作系统上实时检测出网卡通断(插拔,失联等情况)
<br>
模块化部署
<br>
关键源码
#if 1
QNetworkInterface networkInterface = QNetworkInterface::interfaceFromName(_networkDevName);
LOG << networkInterface << networkInterface.name();
if( networkInterface.flags().testFlag(QNetworkInterface::IsUp)
&& networkInterface.flags().testFlag(QNetworkInterface::IsRunning)
&& !networkInterface.flags().testFlag(QNetworkInterface::IsLoopBack))
{
// 连接状态改变,需要抛出改变状态信息
if(!_connected)
{
LOG << "emit signal_connectedChanged"
<< _networkName
<< _connected
<< "change to" << true;
_connected = true;
emit signal_networkCardConnectedChanged(_connected);
}
}else{
// 连接状态改变,需要抛出改变状态信息
if(_connected)
{
LOG << "emit signal_connectedChanged"
<< _networkName
<< _connected
<< "change to" << false;
_connected = false;
emit signal_networkCardConnectedChanged(_connected);
}
}
#endif