Я использую команду « nmcli network connectivity », чтобы узнать возможность подключения моего Wi-Fi соединения. После установления соединения с Wi-Fi, и если я увижу, что у него нет подключения к Интернету, тогда " nmcli network connectivity " покажет "limited" , что вполне естественно. Но когда это соединение Wi-Fi вернулось к Интернету, а затем, если я запустил « nmcli network connectivity », то я также получаю «limited» вместо «full» . Я повторно просканировал сеть и подождал несколько секунд, а затем запустил команду, но результат тот же. (Т.е. ограниченный)
Но если я снова подключусь к Wi-Fi, запустив " nmcli device wifi connect [SSID] пароль [wap_key] ", а затем попытайтесь увидеть подключение к сети, после чего я получил " полный "
Итак, это означает, что каждый раз, когда я хочу проверить подключение к сети, мне нужно повторно подключаться к Wi-Fi ( что нежелательно). Так ли это?
Если нет, то скажите, пожалуйста, подходящий метод (команда linux, не через графический интерфейс или не через ping, системная команда более приемлема), чтобы проверить, есть ли у моего Wi-Fi доступ в Интернет или нет.[любой код c / c ++ также приемлем]
Я думаю, вы только что пропустили аргумент check
.
Этот аргумент перепроверяет соединение.
nmcli networking connectivity check
Из справочных страниц
connectivity [check]
Get network connectivity state. The optional check argument tells NetworkManager to
re-check the connectivity, else the most recent known connectivity state is displayed
without re-checking.
Possible states are:
none
the host is not connected to any network.
portal
the host is behind a captive portal and cannot reach the full Internet.
limited
the host is connected to a network, but it has no access to the Internet.
full
the host is connected to a network and has full access to the Internet.
unknown
the connectivity status cannot be found out.