Есть ли так или иначе с API Windows, чтобы обнаружить, является ли сетевое соединение компьютера Windows 7 интернет-соединением или соединением LAN без доступа в Интернет? Windows 7 и Vista указывают на это в значке сети (Локальный только против Локального и Интернета), должен там так или иначе захватить ту информацию progammatically?
http://msdn.microsoft.com/en-us/library/aa370750 (VS.85) .aspx описывает разницу между IsConnected
и IsConnectedToInternet
. Только Windows 7. У меня нет под рукой образца нативного кода, извините.
Не совсем.
Вы можете определить, находитесь ли вы в локальной сети по IP-адресу (при условии, что ваш локальный DHCP-сервер выдал один из частных адресов 192.168.xx.xx).
Вы можете проверить связь с известным внешним сайтом, чтобы проверить, есть ли эта локальная сеть. есть подключение к Интернету.
Windows 7 выполняет DNS-запрос для dns.msftncsi.com через 5 секунд после установления связи. Не вижу причин для этого, кроме проверки интернет-соединения.
Пинг 4.2.2.2
- обычное дело средство определения наличия подключения к Интернету.
История этого кроется здесь .