Linux下怎么检测网络的连通状态

时间:2021-12-27 05:21:45
不想ping某一个IP地址。
不想编写一个socket来和服务器发送心跳包保持联系。
只想测试网络是否在线。即IP等设置不对或者网线被拔出导致的不能上网都可以检测出来!
就像Ubuntu里的网络小图标那样。
希望可以调用有关库函数或者外部命令来实现。
本人网上搜了N多帖子无果。
THX!

11 个解决方案

#1


ping其实就已经是最好的工具了,否则就是原始套接字写个C程序,发ICMP请求,并接受应答... 

#2


总感觉这样的方式不够优雅,或说,在win下就有系统调用来判断网络的通断,为啥linux下木有呢

#3


有木有淫啊   发表一下看法嘛

#4


这个网络通断是对方的机器, 不Ping肯定不行啊, 对方又没明确提供某个端口的服务, 只有ICMP是一般开发的.

#5


直接用ethtool查看就行了。。。

#6


检查网线是否插入可以查看
/sys/class/net/eth0/carrier  文件的内容。 1 表示网线有插入, 0 表示没接网线。

IP等设置不对 这个没有什么好的办法检查。

#7


THX.
不知道Ubuntu等发行版的网络连接小工具(就是面板右上角的那个图标)里面具体怎么实现的。人家的那个做的很不错哈~~

#8


估计也是ping吧。

#9


怎么感觉ping的方式很不优雅

#10


一个ping 命令就可以知道了。简单明了。

#11


引用 6 楼  的回复:
检查网线是否插入可以查看
/sys/class/net/eth0/carrier  文件的内容。 1 表示网线有插入, 0 表示没接网线。

IP等设置不对 这个没有什么好的办法检查。

学习了!!

#1


ping其实就已经是最好的工具了,否则就是原始套接字写个C程序,发ICMP请求,并接受应答... 

#2


总感觉这样的方式不够优雅,或说,在win下就有系统调用来判断网络的通断,为啥linux下木有呢

#3


有木有淫啊   发表一下看法嘛

#4


这个网络通断是对方的机器, 不Ping肯定不行啊, 对方又没明确提供某个端口的服务, 只有ICMP是一般开发的.

#5


直接用ethtool查看就行了。。。

#6


检查网线是否插入可以查看
/sys/class/net/eth0/carrier  文件的内容。 1 表示网线有插入, 0 表示没接网线。

IP等设置不对 这个没有什么好的办法检查。

#7


THX.
不知道Ubuntu等发行版的网络连接小工具(就是面板右上角的那个图标)里面具体怎么实现的。人家的那个做的很不错哈~~

#8


估计也是ping吧。

#9


怎么感觉ping的方式很不优雅

#10


一个ping 命令就可以知道了。简单明了。

#11


引用 6 楼  的回复:
检查网线是否插入可以查看
/sys/class/net/eth0/carrier  文件的内容。 1 表示网线有插入, 0 表示没接网线。

IP等设置不对 这个没有什么好的办法检查。

学习了!!