С++ Проверьте подключение к Интернету в Linux Ubuntu

Есть ли способ проверить подключение к Интернету в Linux Ubuntu? Поскольку это только для Windows - программно проверить, у моей машины есть доступ в интернет или нет

Или с помощью библиотек Poco.


person Jasurbek Nabijonov    schedule 05.06.2017    source источник
comment
Что не так с этим решением, данным в том же вопросе? Используйте библиотеку сокетов для подключения к известному адресу.   -  person Cody Gray    schedule 05.06.2017
comment
@CodyGray Как мы можем это реализовать?   -  person Jasurbek Nabijonov    schedule 05.06.2017
comment
Использование библиотеки сокетов, как я уже сказал. Я предполагаю, что это был действительно вопрос «дайте мне код».   -  person Cody Gray    schedule 05.06.2017
comment
Хорошо. Благодарю вас! Я нашел правильный ответ.   -  person Jasurbek Nabijonov    schedule 05.06.2017


Ответы (1)


Вы можете использовать команду route в Linux для проверки

FILE *output;

if(!(output = popen("/sbin/route -n | grep -c '^0\\.0\\.0\\.0'","r")))
{
    return 1;
}
unsigned int i;
fscanf(output,"%u",&i);
if(i == 1)
       cerr<<"There is internet connection\n";
else if(i == 0)
       cerr<<"There is no internet connection\n";
pclose(output);

Дополнительную информацию об этом можно найти здесь.

person XZ6H    schedule 05.06.2017
comment
Это только даст вам информацию о том, что установлен маршрут по умолчанию. но если вы можете получить доступ к интернету, IP-адреса не будут гарантированы. поэтому вы должны открыть соединение с хорошо известным IP-адресом в Интернете, например 8.8.8.8 / 8.8.8.4 (DNS-сервер Google). - person 0x0C4; 05.06.2017