linux系统判断网络物理连接状态

最近发现 /sys/class/net/ 似乎可以获取网口物理连接状态

于是乎在T113i主板上进行了测试。当前是双网口+交换机芯片。如图所示:

具体的是 eth0和eth2是单网口,eth1是交换机芯片接的四个网口。

对于carrier

下面对单网口和交换机芯片的网口进行测试。命令简单的说就是

cd /sys/class/net/{网口}                # 访问设备文件 

cat carrier                                # 查看网线连接状态,1表示网络连接正常,0表示不正常

cat carrier_changes                # 查看状态变化次数

实验现象:

①对于eth0,先不接网线,再接网线:

可以检测出网线拔插情况。上位机(PC端)并未配置网关(192.168.201.x)与该网口ip对应。

②对于eth2,先不接网线,再接网线:

可以检测出网线拔插情况。上位机(PC端)并未配置网关(192.168.202.x)与该网口ip对应。

③对于eth1,先不接网线,再接网线:

在不接网线情况下,就已经是1了!其实就相当于是网口网线接了一个交换机设备。所以接下来要想办法判断“交换机的网口是否接设备”

经过调研,应该是需要通过交换机芯片寄存器来查看交换机芯片各个网口的状态的。例如 IP175G需要通过I2C来操作。


对于 carrier_changes 

其实多次测试,可以发现 carrier_changes = carrier_down_count + carrier_up_count

  • carrier_down_count 的含义是:网络设备的载波状态从 "up" 变为 "down" 的累计次数。这通常用于统计和诊断网络设备的连接稳定性问题。通过检查 carrier_down_count,可以了解网络设备的连接稳定性。如果这个计数值很高,可能意味着网络设备的物理连接不稳定,例如电缆松动或网络接口故障。

  • carrier_up_count 的含义是:网络设备的载波状态从 "down" 变为 "up" 的累计次数。这通常用于统计和诊断网络设备的连接稳定性问题。如果这个计数值很高,可能意味着网络设备的物理连接经常恢复,例如电缆经常重新连接或网络接口经常重新激活。

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-11 23:32:07       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-11 23:32:07       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-11 23:32:07       58 阅读
  4. Python语言-面向对象

    2024-07-11 23:32:07       69 阅读

热门阅读

  1. 对比多种方法执行命令行命令

    2024-07-11 23:32:07       21 阅读
  2. 白骑士的C++教学基础篇 1.5 数据结构

    2024-07-11 23:32:07       21 阅读
  3. 百日筑基第十七天-消息队列入门

    2024-07-11 23:32:07       22 阅读
  4. Mojo 编程语言:AI开发者的新宠儿

    2024-07-11 23:32:07       23 阅读
  5. C#如何从中级进阶到高级开发

    2024-07-11 23:32:07       26 阅读
  6. 【Layui】Layui表格动态生成列

    2024-07-11 23:32:07       19 阅读
  7. Windows系统服务器远程教程

    2024-07-11 23:32:07       22 阅读