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" 的累计次数。这通常用于统计和诊断网络设备的连接稳定性问题。如果这个计数值很高,可能意味着网络设备的物理连接经常恢复,例如电缆经常重新连接或网络接口经常重新激活。
原文地址:https://blog.csdn.net/qq_25662827/article/details/140321354
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!