| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Сети > Как опредилить подключён ли пользователь к инету |
| Автор: fuckerok 8.11.2004, 08:49 |
| Хочу написать программу примерно следушего типа..... Если пользователь подключён к инету, то программа выполняет какю либо процедуру, если же юзер не подключён, то программа ожидает пока он не подключиться (допустим каждые пять мин опять проверяеть состояние конекта). Нашёл несколько способов в делфи ворд, но что-то не один из них не работает Конечно можно было сделать проверять ИП, если не 127.0.0.1, то значит юзер подключён, но тут возникает вопрос куда? мОжет локалка у него, а моя прога будет обращаться к серверу отправки почты майла.рю По этому прошу написать пример определения конекта именно к инету! |
| Автор: oleg1973 8.11.2004, 11:35 |
| в АПИ есть GetInetConnectionStatus или народный способ пингануть ченить или попытатся сделать gethostbyname |
| Автор: p0s0l 8.11.2004, 11:39 | ||
| Проверяй, есть ли соединение с каким-нибудь хостом... В принципе, можно сделать просто перевод DNS-имени в IP-адрес какого-нибудь "microsoft.com" - этого думаю будет достаточно. Типа такого:
Добавлено @ 11:40 oleg1973 меня опередил |
| Автор: SoWa 9.11.2004, 12:04 |
| if InternetGetConnectedState(nil,0) then //Если подключен, то... begin ... end; |
| Автор: Vit 9.11.2004, 16:56 |
| FAQ! |
| Автор: fuckerok 17.11.2004, 07:02 | ||
Вот ещё в код забыли вы добавить
Без этого не работает, а не все про это помнят |
| Автор: AriX 20.11.2004, 17:23 | ||||
| ИМХО самый верный способ проверки соединения с инетом - это запрос на какой-нибудь сайт, который 99,9% в сети (типа microsoft.com, hotmail.com, mail.ru итд). Таким способом, можно проверять соединение и через проксик. Вот как это примерно делается:
У меня сделано примерно так. Можно конечно доработать, но принцип я думаю ясен p0s0l
Этот способ плох тем, что если человек сидит через проксю, то реально проверить если коннект не получится - до ДНС он может и дотянется, а дальше никуда не вылезет |
| Автор: Vit 23.11.2004, 16:34 | ||
Со 100% гарантией задача неразрешима. |
| Автор: AriX 30.11.2004, 13:57 |
| Vit А выше написанный способ чем может быть плох - просто самому интересно |
| Автор: Vit 1.12.2004, 05:16 |
| Потому что может стоять например фильтрик который позволяет тебе в инете ходить только на Yahoo - ты по нему проверил инет - есть, а куды не ткнёшься - никуда пойти нельзя. Yahoo или MS или чего ещё может тоже иногда падать... Твой пример на самом деле один из наиболее хороших способов который даёт наиболее точную инфу о возможности выхода в инет, но тоже без 100% гарантии. |
| Автор: AriX 2.12.2004, 14:53 |
| Vit А ну если так Согласен, но это уж совсем маловероятно ;) |
| Автор: oleg1973 2.12.2004, 17:49 |
| ну немнога не согласен это InternetGetConnectedState окромя TRUE&FALSE еще кучку параметров возвращает таких как тип соеденения к примеру RAS PROXY e.t.c |
| Автор: Akina 2.12.2004, 18:13 |
| пинги и геты - сакс, потому как могут спровоцировать нежелательные побочные эффекты (дозвон, к примеру). |