![]() |
|
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]()
|
|
| razumsap |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 13.12.2007 Репутация: нет Всего: нет |
У нас часто пропадает инет на работе, хотелось бы написать программу, которая показывала наличие подключения (графически). Подскажите пожалуйста функцию или ещё что-нибуд, желательно чтоб можно было реализовать на Делфи 6. Или может кто уже сделал такую программу - поделитесь
|
|||
|
||||
| tommy256 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 28.11.2007 Репутация: нет Всего: нет |
А что будет показываться на графике, On or Off?
Можно просто без графика, например если инет пашет, то кнопочка зелёная, если нет то красная Посмотри в drkb, там есть похожее |
|||
|
||||
| Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 6 Всего: 111 |
razumsap
Пингуй Яндекс. |
|||
|
||||
| remax |
|
|||
|
Доцент ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 686 Регистрация: 7.4.2002 Где: Украина, Харьков Репутация: нет Всего: 5 |
примерно так
-------------------- Как бы ты не старался быть хорошим и правильным человеком с принципами и уважительным отношением к другим, всегда найдется кто-то, кто бросит в тебя какашку |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 34 Всего: 459 |
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| remax |
|
|||
|
Доцент ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 686 Регистрация: 7.4.2002 Где: Украина, Харьков Репутация: нет Всего: 5 |
Да, возможно использования только InternetGetConnectedState будет мало.
В MSDN написано следующее: "You cannot rely solely on the fact that InternetGetConnectedState returning TRUE means that you have a valid active Internet connection. It is impossible for InternetGetConnectedState to determine if the entire connection to the Internet is functioning without sending a request to a server. This is why you need to send a request to determine if you are really connected or not. You can be assured however that if InternetGetConnectedState returns TRUE, that attempting your connection will NOT cause you to be prompted to connect to the default Internet Service Provider." т.е. Вы не можете полагаться только на тот факт, что если функция InternetGetConnectedState возвращает TRUE, это означает наличие активного соединения с Интернет. InternetGetConnectedState не может определить, функционирует ли соединение с Интернет без обращения к серверу... Для полной проверки надо будет еще пингануть. Т.е. первым пунктом используем InternetGetConnectedState, а затем если TRUE, пробуем пинговать. Для этого необходимо использовать протокол ICMP: утилиты ping, traceroute; (так мы узнаем о доступности какого-либо узла). Ключевые фунции - IcmpSendEcho() (реализована в ICMP.DLL), InternetCheckConnection() (реализована в WININET.DLL) Это сообщение отредактировал(а) remax - 8.1.2008, 21:14 -------------------- Как бы ты не старался быть хорошим и правильным человеком с принципами и уважительным отношением к другим, всегда найдется кто-то, кто бросит в тебя какашку |
|||
|
||||
| Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 6 Всего: 111 |
И то верно. Добавлено через 21 секунду О том и речь |
|||
|
||||
| remax |
|
|||
|
Доцент ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 686 Регистрация: 7.4.2002 Где: Украина, Харьков Репутация: нет Всего: 5 |
Да, для полноценной проверки и этого может быть недостаточно. Автор темы четко не определил понятие "пропал Интернет". Поэтому, как положено - от простого к сложного. Начать с InternetGetConnectedState. Если этого будет недостаточно - IcmpSendEcho(), InternetCheckConnection(). Если этого будет мало, тогда будем думать дальше. Надо решать проблемы по мере поступления! Добавлено через 3 минуты и 1 секунду В своих прогах, работающих с интернетом, мне обычно хватает InternetGetConnectedState. И, как не странно, пока сбоев не было... Хотя сама Микрософт ничего не гарантирует. -------------------- Как бы ты не старался быть хорошим и правильным человеком с принципами и уважительным отношением к другим, всегда найдется кто-то, кто бросит в тебя какашку |
|||
|
||||
| razumsap |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 13.12.2007 Репутация: нет Всего: нет |
Спасибо всем за помощь.
Да хотелось бы всего ничего, чтоб показывался индикатор On or Off. Вот с утра попробовал InternetGetConnectedState всё время возвращяет true.
Попробую воспользоваться выше приведенными советами. Программу написал, но что-то она ругается Использовал материал http://www.realcoding.net/article/view/251 Реализация ping с помощью ICMP API, после выполнения кода
выдает сообщение в мемо Error in call togethostbyname(). Error code: 11001 Написал просто
Это сообщение отредактировал(а) razumsap - 9.1.2008, 16:20 |
||||||
|
|||||||
| remax |
|
|||
|
Доцент ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 686 Регистрация: 7.4.2002 Где: Украина, Харьков Репутация: нет Всего: 5 |
Попробуй такой вариант:
Необходимые пояснения - программа проверяет существование определенного адреса в сети. По рекомендациям участников дискуссии - это http://google.com Проверка инициируется таймером. Визуализация - изменение цвета панели. Если все ок Только в таймере поставь не меньше минуты. Это сообщение отредактировал(а) remax - 10.1.2008, 00:55 -------------------- Как бы ты не старался быть хорошим и правильным человеком с принципами и уважительным отношением к другим, всегда найдется кто-то, кто бросит в тебя какашку |
|||
|
||||
| razumsap |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 13.12.2007 Репутация: нет Всего: нет |
Написал программу, а она ругается, выдает ошибку
--------------------------- Socket Error # 11001 --------------------------- что соответсвует IP_BUF_TOO_SMALL где мальнький буфер и как его увеличить? вобщем, админ наш сказал, что пинг не проходит, по причине того, что мы(наша ОАО) работаем через 2 прокси и сказал такое Киска не выпустит за пределы интранета Это сообщение отредактировал(а) razumsap - 10.1.2008, 16:59 |
|||
|
||||
| Rennigth |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 15 Всего: 76 |
razumsap,
нет, это озночает что сервер не найден. Вот немного поправленны вариант:
Добавлено через 46 секунд razumsap, можно было бы и самому заметить что хухл неправильно написан Добавлено через 1 минуту и 55 секунд если есть прокся, работать не будет, нужно будет дописывать аутентификацию. -------------------- (* Honesta mors turpi vita potior *) |
|||
|
||||
| remax |
|
|||
|
Доцент ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 686 Регистрация: 7.4.2002 Где: Украина, Харьков Репутация: нет Всего: 5 |
Интересно, с каких пор http://google.com это неправильно? У меня, например, все нормально сработало. Причем, вернуло именно 200, а не какой либо другой код. -------------------- Как бы ты не старался быть хорошим и правильным человеком с принципами и уважительным отношением к другим, всегда найдется кто-то, кто бросит в тебя какашку |
|||
|
||||
| remax |
|
||||
|
Доцент ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 686 Регистрация: 7.4.2002 Где: Украина, Харьков Репутация: нет Всего: 5 |
Пример автоматического определения параметров прокси (кусок моей рабочей проги)
Добавлено через 5 минут и 1 секунду Rennigth, твои изменения изменили логику работы проги. Весь смысл - периодический опрос. А в твоей модификации - только FormCreate? Добавлено через 7 минут и 17 секунд razumsap, а в самом деле, чего мы мучаемся - посмотри в настройках своего броузера - есть явное указание прокси или нет? Добавлено через 13 минут и 12 секунд
А админ не сказал причину регулярного отсутствия интернета? Может дело в выключении каких то рутеров или проксей? И пинговать достаточно их, или те же ваши прокси? -------------------- Как бы ты не старался быть хорошим и правильным человеком с принципами и уважительным отношением к другим, всегда найдется кто-то, кто бросит в тебя какашку |
||||
|
|||||
| Rennigth |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 15 Всего: 76 |
дык я только тестировал, а в таймере функция будет вызываться или нет это я думаю уже автору топика решать. А изменение это зануление dc, т.к. если HttpQueryInfo выполниться неудачно, то вdc останеться тотже мусор что и при инициялизации, и есть шанс(хоть и мизерный) что там будет значение 200 и функция вернет в итоге True -------------------- (* Honesta mors turpi vita potior *) |
||||
|
|||||
![]()
|
| Правила форума "Delphi: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |