Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 4 956

/ вопрос решён /

Приветствую, уважаемые эксперты!
Каким образом можно узнать подключен данный компьютер к интернету или нет?
При использовании приложенного компонента можно узнать подключен ли модем или нет, но не состояние подключения к интернету!
Хочется найти метод который работал бы независимо от типа модема и соединения!

К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса)

prorok-kane Вопрос решён, но можно продолжить его обсуждение в мини-форуме

Вопрос задал: prorok-kane (статус: Посетитель)
Вопрос отправлен: 25 января 2011, 17:53
Состояние вопроса: решён, ответов: 1.

Ответ #1. Отвечает эксперт: Вадим К

Здравствуйте, prorok-kane!
Открою большущий секрет. такого метода нет и быть не может.
Для начала нужно определиться, а что такое "есть интернет?".
Для одних это нужно что бы открывались разные сайты, подключались различные клиенты (скайп, аська, джаббер). А для других (и так миллионы), что бы работал ВКонтакт.
Так вот нужно начинать с этого.
Например, для некоторых хватает пропинговать сайт гугла или яндекса. И если пинг идет, то все ок. Но и они могут падать (и такое было!).
А может быть ситуация и похлеще - в каком-нибудь офисе, где хитрый админ забанил пол интернета.

Я бы сделал так. Взял бы пример пинга и пинговал 4.4.4.4 (это один с корневых dns серверов. то, что он упадет - практически нереально. А если он не пингуется, значит либо на компе нет интернета, либо вся мировая сеть начала падать, либо просто у провайдера неполадки). Или попинговать 8.8.8.8 (это гугловский OpenDNS).
Если первый тест прошел удачно, то дальше я бы попинговал по имени гугл, яндекс, или что то подобное.
И третий, последний тест - скачать страничку с какого то сайта. тут поможет idHttp.get('http://ya.ru'); с пакета indy

И лишь после прохождения этих тестов я бы предополагал, что интернет вроде есть.


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

Но не нужно забывать о всяких фаерволах:).

Ответ отправил: Вадим К (статус: Академик)
Время отправки: 25 января 2011, 18:21
Оценка за ответ: 5


Мини-форум вопроса

Всего сообщений: 8; последнее сообщение — 25 января 2011, 22:50; участников в обсуждении: 3.
prorok-kane

prorok-kane (статус: Посетитель), 25 января 2011, 18:43 [#1]:

Мне просто нужно, чтобы допустим ночью компьютер подключен к интернету и передаёт данные по p2p сети, но если он отключиться от интернета и не подключиться назад, то нужно выключить компьютер.
Сейчас пробую данный код, но в нём проблема лишь в том, что его нужно перенести на RAD Studio 2010, но это уже считай и не проблема вовсе!
Вадим К

Вадим К (статус: Академик), 25 января 2011, 18:52 [#2]:

ну можно использовать компоненты indy (они там должны быть) и раз в пять минут качать страницу провайдера к примеру.
Но нужно помнить, что там нужно ещё проверить, что это правильная страница.
Галочка "подтверждения прочтения" - вселенское зло.
min@y™

min@y™ (статус: Доктор наук), 25 января 2011, 21:37 [#3]:

Да чо вы паритесь? Если не качается целевая инфа с целевых хостов, значит инета нету! И похрену, что пингуется ya.ru или 4.4.4.4! Не с той стороны рассматриваете проблему.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
prorok-kane

prorok-kane (статус: Посетитель), 25 января 2011, 21:47 [#4]:

Тогда с какой нужно смотреть?
min@y™

min@y™ (статус: Доктор наук), 25 января 2011, 22:04 [#5]:

Цитата (prorok-kane):

Тогда с какой нужно смотреть?

Пингуй хост тот, хочешь откуда данные получить, юный падаван!
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
prorok-kane

prorok-kane (статус: Посетитель), 25 января 2011, 22:24 [#6]:

В p2p сети я даже и не знаю откуда буду инфу получать!
Но всё же спасибо за совет!
min@y™

min@y™ (статус: Доктор наук), 25 января 2011, 22:31 [#7]:

Цитата (prorok-kane):

и не знаю откуда буду инфу получать!

Интересно, а в проге тогда ты как ... Господи, ну что я говорю?.. Этот грешник не знает принципов сетевого обмена и TCP/IP!..
Всё, спать, спать, спать. Утром на работу!
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
prorok-kane

prorok-kane (статус: Посетитель), 25 января 2011, 22:50 [#8]:

Всё вкурил смысл сказанного!
Даже тот-же торрент отправляет запрос на сервер(хост) о пользователях у которых есть необходимая мне информация и находящихся в сети, а затем при помощи пришедшей информации (IP-адреса) мы подключаемся к ним и получаем информацию.

Я влез в данную тему лишь из любопытства и поэтому я еще мало чего знаю!

25 января 2011, 22:52: Статус вопроса изменён на решённый (изменил автор вопроса — prorok-kane)

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:32
Выполнено за 0.02 сек.