Существует ли Linux-эквивалент для функции Windows InetIsOffline? - PullRequest
1 голос
/ 20 декабря 2011

Существует ли функция Linux, эквивалентная функции InetIsOffline в Windows (предоставлена ​​url.dll), которая может сообщить мне, подключена ли система к Интернету, или мне нужноПриготовить что-нибудь самому?

Причина, по которой я спрашиваю, заключается в том, что я рано усваиваю Lhogho Я узнал, как это сделать в Windows , и хотел разработать что-то, чтобы предложить такую ​​же функциональность в Linux.

Ответы [ 3 ]

1 голос
/ 20 декабря 2011

Вы также можете проанализировать некоторые файлы в /proc/net/, например /proc/net/if_inet6 или /proc/net/tcp

Но почему ты хочешь это сделать? Если вы хотите проверить доступность какого-либо сайта, просто запустите его программным способом (например, с помощью libcurl ).

И бывает, что некоторые сайты недоступны, а другие все еще работают.

1 голос
/ 20 декабря 2011

Вы можете поговорить с Network Manager через D-Bus, чтобы узнать, подключено ли что-нибудь, но кроме этого нет особого способа сделать это. И даже НМ не всегда точен.

0 голосов
/ 23 января 2012

Это может означать «у меня есть маршрут по умолчанию?», Или, по крайней мере, это будет разумной реализацией, ИМХО. Итак, просто проверьте таблицу маршрутизации (/proc/net/route):).

Это, конечно, не будет работать с IPv6 (вам нужно проанализировать ipv6_route), но сложно решить, как это следует обрабатывать. Возможно, исходный код Wine или документация MSDN могут пролить свет на этот вопрос.

...