Как определить,что компьютер подключен к интернету?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
CheburekV
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 14.06.2005 (Вт) 21:13

Как определить,что компьютер подключен к интернету?

Сообщение CheburekV » 15.06.2005 (Ср) 20:50

Помогите, мне нужно написать программу, которая бы при подключении к интернету выполняла бы некие действия.. Как написать функцию, которая бы возвращала True если компьютер подключен к сети и False в случае когда не подключён.
Может, есть какая-нибудь API функция, которая могла бы мне помочь...? :?:

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 15.06.2005 (Ср) 21:12

CheburekV
Ты искал ответ на свой вопрос?
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 15.06.2005 (Ср) 22:05

Мочить!
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

CheburekV
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 14.06.2005 (Вт) 21:13

Сообщение CheburekV » 15.06.2005 (Ср) 22:29

FAKK2 писал(а):CheburekV
Ты искал ответ на свой вопрос?

Искал..., если знаете, что так сложно помочь?

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 15.06.2005 (Ср) 22:34

CheburekV писал(а): что так сложно помочь?


Не сложно поискать. Раз в неделю спрашивают...

Ну, и по новой:
What is "Подключение к интернету"?
Тока без бытовухи, пожалуйста, а то буду отвечать: "Посмотреть на трэй!"
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

CheburekV
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 14.06.2005 (Вт) 21:13

Сообщение CheburekV » 15.06.2005 (Ср) 22:40

Sebas писал(а):Мочить!

ЗА ЧТО? :cry:
Вам дай волю Вы бы всех замочили. А мне это, честно, для личных нужд надо, я очень много времени в инете провожу, и мне нужна прога, которая мне бы напоминала, о том, что времечко-то не казенное... Ну и там разные статистики, нужные исключительно для меня вела, как вообще это реализовать? Только не надо спрашивать опять, зачем мне такая прога .. и.т.д. Просто если знаете, подскажите, пожалуйста, а на нет, и суда нет...

CheburekV
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 14.06.2005 (Вт) 21:13

Сообщение CheburekV » 15.06.2005 (Ср) 23:19

Не я не могу больше искать ответ в этом форуме...

FaKk2
El rebelde gur&#250;
El rebelde gur&#250;
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 15.06.2005 (Ср) 23:45

CheburekV
Так ты не хочешь искать :)
Это по тебе видно.
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

Jenizix
Географ
Географ
Аватара пользователя
 
Сообщения: 545
Зарегистрирован: 20.04.2004 (Вт) 20:52
Откуда: Москва

Сообщение Jenizix » 16.06.2005 (Чт) 2:27

Ищи! ибо тут много такова добра!
Ушел в себя, вернусь не скоро...

Если вам нужно сделать прозрачной только форму, а контролы на ней нет, то вам сюда!!!

Snussi
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 151
Зарегистрирован: 21.07.2004 (Ср) 18:08
Откуда: Москва, Россия

Сообщение Snussi » 16.06.2005 (Чт) 9:11

Ладно, скажу!

Раз в секунду(минуту, час, etc - т.е. раз в минимальный нужный тебе квант времени) выполняй ping по нескольким адресам (для надежности), например:
www.ya.ru
www.mail.ru
www.chat.ru
или DNS, гейт и тд своего провайдера. Если все пинги отказал - подключения нету, иначе - есть.

CheburekV
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 14.06.2005 (Вт) 21:13

Сообщение CheburekV » 16.06.2005 (Чт) 21:29

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

Спасибо, за помощь :)

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 16.06.2005 (Чт) 21:44

Windows не в состоянии отличить подключение к Интернету от подключения к соседу. Поэтому придётся определиться, что именно тебе нужно, и реализовывать конкретно это.
Изображение

Snussi
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 151
Зарегистрирован: 21.07.2004 (Ср) 18:08
Откуда: Москва, Россия

Сообщение Snussi » 17.06.2005 (Пт) 10:12

К слову говоря, вообще никто не может отличить подключение к интернету от пождключения к соседу, не запрашивая конкретные интернет-узлы.
Ведь интернет - по большому счету большая сеть, построенная на том же TCP.
Вот хороший пример (а заодно и вопрос к CheburekV) - если ты подключился к провайдеру, а у него обрублен внешний кабель, - ты в интернете или нет?

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 17.06.2005 (Пт) 10:35

Snussi писал(а):Ведь интернет - по большому счету большая сеть, построенная на том же TCP.

Не на TCP. На IP.
Иначе получается, что DNS - не часть Интернета, раз он на UDP.
Изображение

Snussi
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 151
Зарегистрирован: 21.07.2004 (Ср) 18:08
Откуда: Москва, Россия

Сообщение Snussi » 17.06.2005 (Пт) 11:36

Сорри, признаю ошибку, но суть дела от этого не меняется :)

MeMBus
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 450
Зарегистрирован: 23.02.2005 (Ср) 7:03
Откуда: Из леса...

Сообщение MeMBus » 17.06.2005 (Пт) 11:43

Использование класса:
Код: Выделить всё
    Dim oConnectionState As New CWinInetConnection
    With oConnectionState
        .Refresh
        If .IsConnected Then
            ‘Инет есть
        Else
            ‘Инета нет
        End If
    End With
Вложения
CWinInetConnection.rar
(2.11 Кб) Скачиваний: 176
Бороться и искать, найти и перепрятать!

MeMBus
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 450
Зарегистрирован: 23.02.2005 (Ср) 7:03
Откуда: Из леса...

Сообщение MeMBus » 17.06.2005 (Пт) 11:47

P.S. Народ, ну ей богу вы ведете себя как звери, готовые наброситься и разорвать любого в клочья. Я понимаю, что когда спрашивают один и тот же вопрос много раз может взбесить, но наверное лучше было бы промолчать, а не орать что «з..ли со своими вопросами»...
Бороться и искать, найти и перепрятать!

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 17.06.2005 (Пт) 16:40

MeMBus писал(а):P.S. Народ, ну ей богу вы ведете себя как звери, готовые наброситься и разорвать любого в клочья. Я понимаю, что когда спрашивают один и тот же вопрос много раз может взбесить, но наверное лучше было бы промолчать, а не орать что «з..ли со своими вопросами»...


Просто чел незнает чё спрашивает, да и твой код в половине случаев облажается....
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 17.06.2005 (Пт) 16:55

Sebas
ну и пусть облажается им этого и надо :)

а мужики-то не знают...

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 17.06.2005 (Пт) 19:18

MeMBus писал(а): а не орать что «з..ли со своими вопросами»...


Как ты смог заметить, никто не ОРЁТ, просто по натуре, программисткой, хочется КОРРЕКТНОСТИ, а этого нет.

Если я спрошу,
КАК ПОДКЛЮЧИТСЯ К БАЗЕ ДАННЫХ?

Что скажешь? Я думаю первый вопрос будет К КАКОЙ?.
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

CheburekV
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 14.06.2005 (Вт) 21:13

Сообщение CheburekV » 17.06.2005 (Пт) 20:13

Спасибо за критику, постараюсь учесть, в будущем..., и спасибо за ответы, помогли человеку,
кстати нашёл API, которая, вроде, по документации определяет наличия подключения InetIsOffline.(пока просто не проверял) И я так понял, что это относительно точное определение…

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 17.06.2005 (Пт) 21:03

InetIsOffline - это то же, что "автономная работа" в заголовке IE.
Результат этой функции никак не связан с наличием связи с Интернетом.
Изображение

ЮЮ
Начинающий
Начинающий
 
Сообщения: 11
Зарегистрирован: 13.06.2004 (Вс) 11:32
Откуда: Эстония

Сообщение ЮЮ » 25.08.2005 (Чт) 16:21

Snussi писал(а):Вот хороший пример (а заодно и вопрос к CheburekV) - если ты подключился к провайдеру, а у него обрублен внешний кабель, - ты в интернете или нет?


если грамотный провайдер у него должно быть покрайне мере больше одного сегмента на выход в глобальный Интернет. Если такого нет, то галимый провайдер. особенно если на прокси все висит, и при глюке с проксей, юзвери солятся в локалке данного провайдера.

Вообще локальную сеть тоже можно считать интернетом если в ней шурует маршрутизатор и какой-нибуть сервис. Ведь интернет это способ соеденится с нужным сервисом, который даст нужную информацию. Но если нет возможности получить сигнал от нужного сервака, интернет всеравно будет интернетом.

Это также как авто дорога. Может быть локальной на хуторе с тупиками в оба конца, или автобан. и в обоих случаях это дорога.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 25.08.2005 (Чт) 16:27

Вывод из всего сказанного.

Для проверки пингуй microsoft.com или что-то весьма надежное. За примером пингования в поиск по форуму.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 25.08.2005 (Чт) 19:27

Amed, уж хоть бы проверил сам, раньше чем постить...
На microsoft.com пинги обрублены. Т.е. смысла пинговать его нет никакого.
Можно пинговать, например, google.com: тот пока что пингуется.


ЮЮ, заметно что из Эстонии ;-))
Изображение

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 25.08.2005 (Чт) 20:12

И правда. Ошибся, каюсь.
Можно еще www.fbi.gov потрясти.

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 25.08.2005 (Чт) 20:50

www.iana.org имхо надежнее. И в плане каналов, и в плане пинга. А вообще, есть такой сайт, который все пингуют, но на который никто никогда не ходит - www.ru :). Правда, он иногда или недоступен, или откровенно валяется. В таком случае можно пингануть www.com - он вроде как претендует на главную точку отсчета в интернете.

max-aziat
Обычный пользователь
Обычный пользователь
 
Сообщения: 98
Зарегистрирован: 13.06.2005 (Пн) 13:41
Откуда: Таджикистан

Сообщение max-aziat » 26.08.2005 (Пт) 8:26

ну посмотри мож это те поможет...........

как программно узнать есть ли соединение с инетом...

Private Declare Function RasEnumConnections Lib "RasApi32.dll" Alias
"RasEnumConnectionsA" (lpRasCon As Any, lpcb As Long, lpcConnections As
Long) As Long
Private Declare Function RasGetConnectStatus Lib "RasApi32.dll" Alias
"RasGetConnectStatusA" (ByVal hRasCon As Long, lpStatus As Any) As Long
Private Const RAS95_MaxEntryName = 256
Private Const RAS95_MaxDeviceType = 16
Private Const RAS95_MaxDeviceName = 32
Private Type RASCONN95
dwSize As Long
hRasCon As Long
szEntryName(RAS95_MaxEntryName) As Byte
szDeviceType(RAS95_MaxDeviceType) As Byte
szDeviceName(RAS95_MaxDeviceName) As Byte
End Type

Private Type RASCONNSTATUS95
dwSize As Long
RasConnState As Long
dwError As Long
szDeviceType(RAS95_MaxDeviceType) As Byte
szDeviceName(RAS95_MaxDeviceName) As Byte
End Type

Public Function IsConnected() As Boolean
Dim TRasCon(255) As RASCONN95
Dim lg As Long
Dim lpcon As Long
Dim RetVal As Long
Dim Tstatus As RASCONNSTATUS95
TRasCon(0).dwSize = 412
lg = 256 * TRasCon(0).dwSize
RetVal = RasEnumConnections(TRasCon(0), lg, lpcon)
Tstatus.dwSize = 160
RetVal = RasGetConnectStatus(TRasCon(0).hRasCon, Tstatus)
If Tstatus.RasConnState = &H2000 Then
IsConnected = True
Else
IsConnected = False
End If
End Function

Private Sub Form_Load()
'если есть соединение, то IsConnected() = True, иначе False
MsgBox IsConnected()
End Sub
не всё сразу дается ...

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 26.08.2005 (Пт) 8:31

max-aziat
Поздравляю тебя. Ты стал очередным человеком, который показал, что он не понимает, что такое соединение с интернетом. Причём показал ты это с помощью того же самого кода, с помощью которого это показывали все до тебя.
http://bbs.vbstreets.ru/viewtopic.php?t=14461

Ура.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 26.08.2005 (Пт) 9:17

GSerg

Маладца! Так их!

2ALL Это форум для ПРОГРАММИСТОВ и , пожалуйста, не употребляйте в ключевых понятиях БЫТОВЫХ выражений.
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

След.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot и гости: 95

    TopList