Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Инет


Автор: Dred 15.3.2007, 16:24
Как проверить есть ли соединение с инетом?

Автор: Akina 15.3.2007, 16:39
Проверять надо соединение с определенным (нужным тебе) узлом. Можно проверять наличие связи с www.ru.
Простейший вариант - пинг. Используем для этого WinSock Control.

Автор: Dred 15.3.2007, 16:59
 smile       Как  это зделать?

Автор: Kirill89 15.3.2007, 19:32
Код

Sub isconnection()
On Error GoTo merror
Dim url As String
url = Inet1.OpenURL("http://www.ru")
Exit Sub
merror:
MsgBox "connection is lost!"
End Sub

Автор: ~FoX~ 15.3.2007, 21:27
Kirill89, НЕ поспособствует....а если узел www.ru лежит или мой прокси его не пропускает?
Если есть желание поковыряться то погляди http://vingrad.ru/DELPHI-DLP-001377....Код на делфи, но он легко переводиться на АПИ, а уж оттуда на ВБ...
Если в лом, то ВинНосок - самое оно.....

Автор: Kirill89 15.3.2007, 22:44
~FoX~, спасибо. приму во внимание.

Автор: Akina 15.3.2007, 23:53
На самом деле правильнее всего проверять коннект ИМЕННО с Инетом - выполнив трассировку нескольких расходящихся маршрутов, проверять наличие связи с последним постоянным узлом... правда, и это не всегда корректно, если локальный пров имеет несколько внешних каналов...


Автор: Tectoder 16.3.2007, 01:06
~FoX~, На самом деле понятие "интеренет" очень широкое. Действительно фраза "быть подключенным к интернету" не имеет смысла. Имеет смысл только наличие связи с конкретным узлом.
Простой пример - наша локальная сеть включает в себя локальный сегмент и несколько подсетей интернета(то есть скажем адрес 194.85.81.10 является IP-адресом интернета, но он входит в нашу локальную сеть).
Иногда случается так, что связь с внешним миром пропадает. При этом "внутренняя" сеть работает.
Получается, я имею доступ к узлу 193.125.143.57(mipt.ru) но не имею доступа, скажем у узлу 213.180.204.8(ya.ru). Как считать, у меня в этот момент подключен интернет или нет?

Автор: Kirill89 16.3.2007, 19:08
В этом случае, получается, что для русского пользователя - интернет состоит из google, mail, rambler, yandex, microsoft, yahoo. Если доступ к ним есть, то есть и интернет. Я сильно сомневаюсь, что есть ситуация когда с ними есть связь, но небудет Интернета. Конечно это всё условность, но всё-же...

Автор: ~FoX~ 16.3.2007, 20:00
Tectoder, Озаботься, пожалуйста, хотя бы пробежаться глазами по ссылке которую я привел.....
Цитата

Единственный 100% достоверный способ узнать находится ли комп в интернете это скачать что-то со стабильного внешнего сервера - такого как Microsoft, Yahoo, AT&T... По другому ни одна функция локального компьютера не сможет отличить нахождение компьютера в интранете и в интернете.


ИТОГО, для наличия инета есть несколько необходимых условий
1. наличие физического сетевого интерфейса или любого другого интерфейса передачи данных (хотя в нутри окон такой вариант можно и не рассматривать).
2. наличие ИП протокола, который привязан к этому интерфейсу.
3. наличие возможности обратиться к узлу (узел не из собственной сети, в т.ч. не являющимся ХТТП сервером в сети) и получить от него ответ.
При не выполнение первых двух пунктов остальные действия бессмысленны.
В рамках ВБ это сводится к ОкноНоскам.....
В целях оптимизации можно попробывать самостоятельно определить первые два пункта, но думается, мне овчинка выделки не стоит....

Автор: Kirill89 16.3.2007, 21:33
Цитата(~FoX~ @  16.3.2007,  20:00 Найти цитируемый пост)
овчинка выделки не стоит....

Это точно!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)