Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2002.05.02;
Скачать: [xml.tar.bz2];

Вниз

Отлов появления коннекта   Найти похожие ветки 

 
VID   (2002-02-16 19:30) [0]

Как поймать появление и разрыв соединения с инетом ?


 
UnderSun   (2002-02-18 20:54) [1]

Попробуй поискать в хелпе какие-нибудь Enum функции. Не уверен что такое есть, но все основные технологии Windows делают это именно через функции Enum(перечисление)


 
Reindeer Moss Eater   (2002-02-19 08:39) [2]

Если у тебя с провайдером диалап, то можно проверить, установлено ли соединение с сервером удаленного доступа провайдера. Но если оно и есть, это еще не значит, что есть "СОЕДИНЕНИЕ С ИНЕТОМ"


 
Ghost.   (2002-02-19 09:49) [3]

Я предлагал еще способ может не самый удачный но иногда и полезный если по таймеру получать свой IP когда он станет отличен от лоального, значит присоединились и наоборот..а заодно и IP в инете получишь


 
Dima-k17   (2002-02-19 10:12) [4]


1) Пинговать что-нить(постоянно)...

2) Постоянно мониторить функцией IfInetIsOffline

function InetIsOffline(Flag: Integer): Boolean; stdcall; external "URL.DLL";

if InetIsOffline(0) then
ShowMessage("This computer is not connected to Internet!")
else
ShowMessage(You are connected to Internet!");


 
Reindeer Moss Eater   (2002-02-19 10:33) [5]

> Ghost У меня всегда есть IP отличный от локального, но не всегда есть соединение с интернетом


 
Ghost.   (2002-02-19 11:00) [6]

>Reindeer Moss Eater Это как это отличный от локального? Локальный я не имел ввиду 127.0.0.1 локальный любой который хоть в твоей карте зашит
unit IPUnit;

interface
Uses SysUtils,WinSock;
Function GetLocalIP:String;
implementation
Function GetLocalIP:String;
type
TaPInAddr = array [0..10] of PInAddr;
PaPInAddr = ^TaPInAddr;
var
phe: PHostEnt;
pptr: PaPInAddr;
Buffer: array [0..63] of char;
i: Integer;
GInitData: TWSADATA;
begin
WSAStartup($101, GInitData);
Result := "";
GetHostName(Buffer, SizeOf(Buffer));
phe :=GetHostByName(buffer);
if phe = nil then Exit;
pptr := PaPInAddr(Phe^.h_addr_list);
i := 0;
while pptr^[i] <> nil do
begin
result:=StrPas(inet_ntoa(pptr^[i]^));
Inc(i);
end;
WSACleanup;
end;
end.

вот хоть с помощью такой функции..обязательно изменится


 
Reindeer Moss Eater   (2002-02-19 12:26) [7]

>GHOST
Не локальный, это значит не 127.0.0.1 и не из диапазона, зарезервировано для частных сетей.
А если у меня их несколько этих адресов?
192.168.5.14
194.186.151.14
И ни один не меняется, хоть есть инет хоть нет его.


 
Ghost.   (2002-02-19 12:40) [8]

>Reindeer Moss Eater
если ты работаешь через прокси то да, за сетевой картой можно закрепить только один, а другой за другой..я не имел ввиду, что он поменяется физически просто если соединение с интернетом происходит, через твой комп то вышеуказанная функция вернет адрес предоставленный провайдером а не адрес твоей карты..я-то так делаю


 
Reindeer Moss Eater   (2002-02-19 12:46) [9]

>Gost Я не работаю через прокси и сетевая у меня всего одна


 
Ghost.   (2002-02-19 13:16) [10]

И как ты ей два адреса присаиваешь?


 
Люба   (2002-02-19 14:03) [11]

С помощью мышки :)


 
Ghost.   (2002-02-19 14:14) [12]

Вот с помощью ееже и получишь адрес провайдера :0)


 
Wonder   (2002-02-19 14:24) [13]

Мда.
VID не сказал главного: а зачем надо "поймать появление и разрыв соединения с инетом"?


 
Reindeer Moss Eater   (2002-02-19 14:25) [14]

Адресов на одном адаптере может быть аж 14, если не ошибаюсь


 
VID   (2002-02-19 16:33) [15]

TO Winder:
Я плачу своему ISP только за траффик (1мб-3р). Повременки нет. Только вот ISP придумал такую затею: если я, в течении 10 мин, не качаю из инета чего-нибудь, и не отправляю туда ничего (т.е. не происходит обмена данными), то пров меня отрубает. А это не хорошо :))
Я написал прогу, которая кажду минуту делает запрос на aport.ru,
ну имеется ввиду, что она просто соединяеться с апортом, читает его заголовок, и отсоединяется. Передача данный при этом минимальна, и в этом случае пров меня уже не отрубает, так как постоянно (каждую минуту) идёт поток данных.

Всё бы хорошо, но ведь лучше, когда эта моя прога будет не всё время постоянно (каждую мин) пытаться коннектиться, а только при наличии соединения с провом. В принципе я сделал там, возможность автоматического выклюения попыток соединения, после 5-ти неудач, но вот активизировать прогу приходится всё-же самостоятельно (когда соединение появитсья), а это не есть GOOD.


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

Вот и все дела :)


 
Wonder   (2002-02-19 17:12) [16]

Вот представь себе обыкновенную локальную сеть.
На твоем компьютере стоит сетевая плата, настроены протоколы, все классно.
Как в этом случае ты задашь свой вопрос?
Есть ли связь с локальной сетью, или есть ли связь с проводами, или есть ли связь с соседом по сети? Сразу скажу, что с точки зрения программы, первые два вопроса - сущий бред.
Интернет - та же сеть. Невозможно определить, есть ли некая абстрактная связь с этой сетью. Можно определить, есть ли связь с определенными узлами этой сети или доступны ли некие сервисы в этой сети (что, впрочем, не говорит о наличии связи с какими-либо другими узлами). Можно определить наличие dialup-связи (то биш установленного RAS-соединения), но это же к интернету вообщем не имеет никакого отношения. Можно определить и IP-адреса, что также не говорит о наличии реальной связи с каким-либо узлом.
Сформулируй реальную задачу.
Тогда сам сразу получишь ответ. Без нашей помощи :)


 
VID   (2002-02-19 21:47) [17]

to wonder: ... а ещё перечитай "Правильный вопрос" :)

У меня нет локсети, нет сетевой карты, я пользуюсь мопедом, используя DualUp дозвон.. Просто, мне с моим модемом - этот метод подключения казался настолько естественным (никогда не пользовался локсетью, или инетом через неё, разве тчо в инеткафе... но там как-то не задумывалься об этом), что как-то в голову не пришло конкретизировать метод подклчения, и всё такое.

Скорее всего, правильно сформулированным, буде вопрос:
"Как определить имеется ли наличие соединения с провайдером, или даже - установлена ли DualUp связь". Пойдёт ?


 
Reindeer Moss Eater   (2002-02-20 08:55) [18]

Вот и конкретный ответ на конкретный вопрос:
Найди RAS.pas и он тебя спасет



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2002.05.02;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.004 c
3-2463
Sewix
2002-04-09 14:56
2002.05.02
Sql запрос как выбрать все поля кроме конкретного одного


6-2634
Di_wind
2002-02-19 20:35
2002.05.02
Максимальный размер файла в TSmtp


3-2496
Marina
2002-04-11 16:42
2002.05.02
Ув.знатоки! Подскажите способ публикации MDB базы в интеренете


1-2581
Kolyan
2002-04-19 16:42
2002.05.02
Как перевести базу под SQL Server?


14-2677
Андрей Сенченко
2002-03-26 17:38
2002.05.02
Дневник специалиста технической поддержки





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский