Windows InetIsOffline函数是否有Linux等价物?

时间:2011-12-20 05:08:52

标签: linux libc

是否有一个Linux函数等同于InetIsOffline function in Windows(由url.dll提供)可以告诉我系统是否连接到Internet,还是我必须自己做些什么?

我问的原因是我是Lhogho的早期采用者。我在Windows中找到了如何做到这一点,并想开发一些在Linux中提供相同功能的东西。

3 个答案:

答案 0 :(得分:1)

您可以通过D-Bus与网络管理器通信以查看是否有任何连接,但除此之外没有具体的方法。 NM甚至并不总是准确的。

答案 1 :(得分:1)

您还可以解析/proc/net/下的某些文件,例如/proc/net/if_inet6/proc/net/tcp

但你为什么要那样做呢?如果您想检查某些网站是否可访问,只需以编程方式访问它(例如使用libcurl)。

确实发生了某些网站无法访问而其他网站仍无法使用的情况。

答案 2 :(得分:0)

这可能意味着“我有一条默认路线吗?”,或者至少这是一个合理的实施,恕我直言。因此,只需检查路由表(/proc/net/route):)。

当然,这不适用于IPv6(您需要解析ipv6_route),但决定如何处理它是很复杂的。也许Wine源代码或MSDN文档可以解释这个问题。