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

Вниз

Проверка соединения   Найти похожие ветки 

 
MGWarlock   (2004-12-30 12:10) [0]

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


 
Digitman ©   (2004-12-30 13:12) [1]


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


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


 
MGWarlock   (2004-12-30 14:37) [2]

Вы мне не помогли.
Я - дилетант. Меня можно с большой натяжкой назвать любителем. Мне бы пример кода какой-нибудь функции типа
function Check_Connected: Boolean;


 
aus   (2004-12-30 14:43) [3]

RasEnumConnections

(третий раз уже аз неделю...)


 
aus   (2004-12-30 14:45) [4]

Digitman ©   (30.12.04 13:12) [1]
Просто дело в том, что MS называет мастер "Мастером подключения к Интеренет", отсюда следствия и вопросы соответствующие.


 
MGWarlock   (2004-12-30 14:46) [5]

Спасибо, сейчас попробую.


 
Digitman ©   (2004-12-30 14:54) [6]


> aus   (30.12.04 14:45) [4]


> MS называет мастер "Мастером подключения к Интеренет"


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

любой мало-мальски уважающий себя оператор иных средств коммуникаций, например, проводной автотелефонии, никогда не скажет, мол, заплати сколько-то там штук денег и подключись ко всем телефонам в мире (а чем совокупность этих самых "телефонов" отличается от Интерсети ? да ничем ! суть одна и та же) .. этот самый уважающий себя и своих клиентов оператор говорит : заплати N штук денег и ты получишь возможность соединиться с другим абонентом Интерсети (в переложении к Интернет читай - оконечным хостом)


 
MGWarlock   (2004-12-30 14:58) [7]

to aus:
Пишет "Undeclared identifier".

В каком модуле оно описано?


 
aus   (2004-12-30 15:39) [8]

rasapi32.dll
TAPI help


 
Lord of fear   (2005-01-02 19:52) [9]

Вот тебе юнит (думаю разберёшься, а если нет, то скажи и я
объясню):
unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 Registry, WinSock, WinInet, StdCtrls;

type
 TConnectionType = (ctNone, ctProxy, ctDialup);

{function ConnectedToInternet : TConnectionType;}
function RasConnectionCount : Integer;

type
 TForm1 = class(TForm)
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
end;

var
 Form1: TForm1;

implementation

{$R *.DFM}

//For RasConnectionCount =======================
const
 cERROR_BUFFER_TOO_SMALL = 603;
 cRAS_MaxEntryName = 256;
 cRAS_MaxDeviceName = 128;
 cRAS_MaxDeviceType = 16;

type
 ERasError = class(Exception);
   HRASConn = DWord;
   PRASConn = ^TRASConn;
   TRASConn = record
   dwSize: DWORD;
   rasConn: HRASConn;
   szEntryName: array[0..cRAS_MaxEntryName] of Char;
   szDeviceType : array[0..cRAS_MaxDeviceType] of Char;
   szDeviceName : array [0..cRAS_MaxDeviceName] of char;
 end;

 TRasEnumConnections =
   function (RASConn: PrasConn;
   var BufSize: DWord;
   var Connections: DWord
   ): LongInt; stdcall;

   

function RasConnectionCount : Integer;
var
 RasDLL : HInst;
 Conns : array[1..4] of TRasConn;
 RasEnums : TRasEnumConnections;
 BufSize : DWord;
 NumConns : DWord;
 RasResult : Longint;
begin
 Result := 0;

 //Load the RAS DLL
 RasDLL := LoadLibrary("rasapi32.dll");
 if RasDLL = 0 then
   exit;

 try
   RasEnums := GetProcAddress(RasDLL,"RasEnumConnectionsA");
 if @RasEnums = nil then
   raise ERasError.Create("RasEnumConnectionsA not found in rasapi32.dll");

 Conns[1].dwSize := Sizeof (Conns[1]);
 BufSize := SizeOf(Conns);

 RasResult := RasEnums(@Conns, BufSize, NumConns);

 if (RasResult = 0) or (Result = cERROR_BUFFER_TOO_SMALL) then
   Result := NumConns;
 finally
   FreeLibrary(RasDLL);
 end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 ShowMessage(IntToStr(RasConnectionCount));

end;

end.



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

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

Наверх





Память: 0.48 MB
Время: 0.036 c
4-1106651856
Unknown
2005-01-25 14:17
2005.03.06
Email


4-1105877516
KILLMAN
2005-01-16 15:11
2005.03.06
отследить открытие/закрыте CD-ROM


14-1108390297
III
2005-02-14 17:11
2005.03.06
Работа PHP


3-1107867700
Ru
2005-02-08 16:01
2005.03.06
АРМ Расчет заработной платы


6-1104091390
X3M
2004-12-26 23:03
2005.03.06
Получить кол-во писем на сервере?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский