我们的团队正在开发一种基于Linux 2.6的互联网媒体设备。目前,我们通过ping www.google.com来检测是否已建立互联网连接(通过有线以太网接口)。
我们在某些测试网络上发现,该设备不支持ICMP数据包转发,因此应用程序代码错误地报告互联网不可用。
是否有更精细的方法来推断是否可以通过/dev/eth0获得互联网连接,而不必依赖于ping一个知名服务?
我们的团队正在开发一种基于Linux 2.6的互联网媒体设备。目前,我们通过ping www.google.com来检测是否已建立互联网连接(通过有线以太网接口)。
我们在某些测试网络上发现,该设备不支持ICMP数据包转发,因此应用程序代码错误地报告互联网不可用。
是否有更精细的方法来推断是否可以通过/dev/eth0获得互联网连接,而不必依赖于ping一个知名服务?
dig NS +aaonly com.
忽略输出并测试退出值 - 0表示查询能够联系根服务器,其他任何值都表示无法联系。
最终你希望设备能够使用互联网进行一些有用的功能。如果有一个明确定义的服务器是设备常连接的,那么向该服务器发送查询将非常有用。
在“无用”和“有用功能”之间有许多步骤,你可以通过检查其中任何一步作为“连通性”的某种度量:
根据你的客户的熟练程度,或者如果你想要一个有用的错误/诊断,他们可以报告给技术支持,检测所有这些可能会很有用。
作为诊断工具,跟踪路由也可能非常有用。