Linux下实时监测双网卡的默认网卡并重新设置默认网卡

devtools/2025/1/12 21:07:05/

在项目使用过程中,碰到了一些双网卡电脑,连接的两个交换机中某一交换机重启。导致通信不正常的情况。

发现是默认网卡发生变化,当然,也有可能是网络连接状态变化

首先通过命令来查看默认网卡是否发生变化
route -n
然后通过写入代码的形式重新制定默认网卡来使得通信正常使用,下面是方法
	#include <QNetworkConfigurationManager>#include <QNetworkConfiguration>#include <QNetworkSession>QNetworkConfigurationManager *manger;//创建manger = new QNetworkConfigurationManager(this);//监听配置变化connect(manger,&QNetworkConfigurationManager::configurationChanged,this,&MainWindow::onConfigurationChanged);//监听网络连接状态变化connect(manger,&QNetworkConfigurationManager::onlineStateChanged,this,&MainWindow::onOnlineStateChanged);void MainWindow::onConfigurationChanged(const QNetworkConfiguration &config){//检查网络配置状态是否发生了变化qDebug() << "NetworkConfiguration chaneged:" << config.name();//通过执行命令进行删除当前默认网卡,然后追加默认网卡QProcess delCmd;//启动命令delCmd.start("sudo ip route del default dev eth1");//删除特定接口的默认路由(dev eth1)//等待进程执行完毕delCmd.waitForFinished();QProcess addCmd;//启动命令addCmd.start("sudo ip route add default via 192.168.1.1 dev eth0");//等待进程执行完毕addCmd.waitForFinished();}void MainWindow::onOnlineStateChanged(bool isOnline){//根据在线状态来推测是否有交换机重连情况if(isOnline){qDebug() <<"network is online";}else{qDebug() <<"network is offline";}}

当然,还有一些其他因素的影响,精准定位后就没有排查其他方面的缘由了。。
欢迎大家补充说明!!!为有需要的人提供支持!

http://www.ppmy.cn/devtools/149975.html

相关文章

React 实战详细讲解:setState 是什么、如何更新及批量处理

在 React 中&#xff0c;setState 是用来更新组件状态的方法&#xff0c;它触发重新渲染组件的过程。理解 setState 的执行机制非常重要&#xff0c;特别是在大型应用中&#xff0c;它可以帮助你更高效地进行状态管理。 下面我们从 setState 的定义、更新类型、批量更新等方面…

工业 4G 路由器赋能远程医疗,守护生命线

在医疗领域&#xff0c;尤其是偏远地区的医疗救治场景中&#xff0c;工业 4G 路由器正发挥着无可替代的关键作用&#xff0c;宛如一条坚韧的 “生命线”&#xff0c;为守护患者健康持续赋能。 偏远地区医疗资源相对匮乏&#xff0c;常常面临着专业医生短缺、诊疗设备有限等困境…

Postman配置环境变量

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 Postman是一套比较方便的接口测试工具&#xff0c;但我们在使用过程中&#xff0c;可能会出现创建了API请求&#xff0c;但API的URL会随着服务器IP地址的变化而改…

android 自定义SwitchCompat,Radiobutton,SeekBar样式

纯代码的笔记记录。 自定义SwitchCompat按钮的样式 先自定义中间的圆球switch_thumb_bg.xml <?xml version"1.0" encoding"utf-8"?> <shape xmlns:android"http://schemas.android.com/apk/res/android"android:shape"oval&q…

每天40分玩转Django:问题解答(一)

解答粉丝提问&#xff1a; 如何利用GitHub Actions优化Django项目的CI/CD流程以提高自动化部署和代码质量监控的效果&#xff1f; 1. 创建GitHub Actions工作流文件 在Django项目的根目录下创建一个名为.github/workflows的目录&#xff0c;并在其中创建一个工作流文件&…

KCP解读:C#库类图

本文是系列文章中的一篇&#xff0c;内容由浅到深进行剖析&#xff0c;为了方便理解建议按顺序一一阅读。 KCP技术原理 KCP解读&#xff1a;基础消息收发 KCP解读&#xff1a;重传机制 KCP解读&#xff1a;滑动窗口 KCP解读&#xff1a;拥塞控制 本系列的源码基于https://gith…

游戏引擎学习第77天

仓库: https://gitee.com/mrxiao_com/2d_game 回顾昨天的 bug 今天我们继续开发进度&#xff0c;进行调试昨天代码的问题&#xff0c;主要是关于如何跟踪玩家和敌人在世界中的高度位置。虽然我们做的是一款 2D 游戏&#xff0c;但我们希望能够处理多层的房间&#xff0c;玩家…

leetcode 329. 矩阵中的最长递增路径

题目&#xff1a;329. 矩阵中的最长递增路径 - 力扣&#xff08;LeetCode&#xff09; 数据规模很小&#xff0c;排序就够了 struct Node {int x;int y;int val;Node* up nullptr;Node* down nullptr;Node* left nullptr;Node* right nullptr;int length 0;Node(int _x,…