none
Проверка подключения к интернету RRS feed

  • Вопрос

  • Несколько вариантов перепробовал.  Здесь вроде проверка через Net но тогда не отследить локальная или интернет. есть вариант проверять доступность сайт через WebClient, есть вариант через Ping Не знаю почему - но остановился на таком (хотя не нравится мне подключение всяких Api библиотек, но в Net вроде как нет таких проверок)

    вариант с dllinport

            #region Проверка интернет соединения
            [DllImport("Wininet.dll", SetLastError = true)]
            [return: MarshalAs(UnmanagedType.Bool)]
            private static extern bool InternetGetConnectedState(out INET_CONNECTION_STATE lpdwFlags, uint dwReserved);
    
            [Flags]
            enum INET_CONNECTION_STATE : uint
            {
                INTERNET_CONNECTION_CONFIGURED = 0x40,
                INTERNET_CONNECTION_LAN = 0x02,
                INTERNET_CONNECTION_MODEM = 0x01,
                INTERNET_CONNECTION_MODEM_BUSY = 0x08,
                INTERNET_CONNECTION_OFFLINE = 0x20,
                INTERNET_CONNECTION_PROXY = 0x04,
                INTERNET_RAS_INSTALLED = 0x10
            } 
            #endregion

    далее

            private void RibbonWindow_Loaded(object sender, RoutedEventArgs e)
            {
                Instance = this;
    
                INET_CONNECTION_STATE flags;
                if (InternetGetConnectedState(out flags, 0U) && (flags & INET_CONNECTION_STATE.INTERNET_CONNECTION_CONFIGURED) == INET_CONNECTION_STATE.INTERNET_CONNECTION_CONFIGURED) 
                {
                    System.Windows.MessageBox.Show("Состояние: " + flags);
                    LoadGFirst();
    
                    }
                } 
                
                else
                    System.Windows.MessageBox.Show("Интернет не подключён!");
    
            }

    Но почему то выдаёт "!Интернет не подключён!" Хотя

    инет есть. В чём загвоздка????


    Спасибо

    1 февраля 2013 г. 3:04

Ответы

  • Я использую вариант с ping, а в качестве "надежного" ресурса использую yandex.ru

    Я конечно понимаю, что и он может быть не доступен, но за 6 лет, что я использую эту заготовку проблем не разу не испытывал.

    По WinAPI подсказать не смогу. Видел пример часто, но никогда не использовал


    Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!

    • Помечено в качестве ответа developers_s 1 февраля 2013 г. 4:25
    1 февраля 2013 г. 3:29
    Отвечающий