Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.25;
Скачать: CL | DM;

Вниз

Задачка = Проверить есть ли комп в сети   Найти похожие ветки 

 
Nikolas ShmuS   (2002-09-25 01:06) [0]

Добрые люди помогите решить такую простенькую задачку......


 
silenser ©   (2002-09-25 12:27) [1]

Пингуй


 
Song ©   (2002-09-25 12:55) [2]

IP и/или имя известны?


 
Anatoly Podgoretsky ©   (2002-09-25 13:05) [3]

Возможно и не простенькую, возможно и не решаемую, зависит от сети и от компьютера, например файрвол


 
Nikolas ShmuS   (2002-09-25 23:38) [4]

silenser подскажи плиз как отпиноговать в 5 Дельфи, плиЗ)


 
Nikolas ShmuS   (2002-09-25 23:42) [5]

Song я и то и то знаю........
возможно пингом, конечно, но я не знаю как отпинговать в 5 дельфи.


 
Nikolas ShmuS   (2002-09-25 23:42) [6]

=> Anatoly Podgoretsky ,необходимо самое простейшее......безо всяхий исхищрений)


 
IronHawk ©   (2002-09-25 23:46) [7]

В кладовка или в ФАКе что-то было, точно помню!


 
silenser ©   (2002-09-26 07:34) [8]

поставь компоненты и прочти статью http://www.cydsoft.com/vr-online/coding/d12_2001.htm


 
Дремучий ©   (2002-09-26 11:48) [9]

ICS - Internet Componen Suit


 
Ocean ©   (2002-09-26 13:15) [10]

Podgoretsky однажды предложил остроумно
command/c ping host >>file.txt

Но что делает ping? Наверное, шлет пустой IP-пакет и смотрит результат. Значит, можно использовать, например, TSocket. Эх, теории не знаю!


 
Anatoly Podgoretsky ©   (2002-09-26 13:24) [11]

Nikolas ShmuS (25.09.02 23:42)
Ты сначала определсь возможно ли пинговать нужные тебе компьютеры, команда в Ocean © (26.09.02 13:15)
Если возможно, то за тобой остается выбор какие Интернет компоненты для этого использовать, ICS, INDY или другие

Если задача серьезная, то стоит подумать об клиент/серверной системе, попутно могут быть решены и другме цели.


 
Nikolas ShmuS   (2002-09-26 19:53) [12]

=> спасибо silenser © ......... посмотрю)


 
Nikolas ShmuS   (2002-09-26 19:56) [13]

=> Дремучий где его взять можно??? плиз


 
Nikolas ShmuS   (2002-09-26 19:57) [14]

=>silenser © там ссылоска на компанент убитая(


 
Wonder ©   (2002-09-26 21:36) [15]

http://delphi.mastak.ru/articles/icmp.html


 
Nikolas ShmuS   (2002-09-27 00:28) [16]

уже нашел спасибо)


 
Nikolas ShmuS   (2002-09-27 22:00) [17]

Нашел еще тут ринг, не требуюший не каких коспонентов, использующий также ICMP.exe )




unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,winsock,
StdCtrls;

type
IPINFO = record
Ttl :char;
Tos :char;
IPFlags :char;
OptSize :char;
Options :^char;
end;


type
ICMPECHO = record
Source :longint;
Status :longint;
RTTime :longint;
DataSize:Shortint;
Reserved:Shortint;
pData :^variant;
i_ipinfo:IPINFO;
end;

TIcmpCreateFile = function():integer; {$IFDEF WIN32} stdcall; {$ENDIF}
TIcmpCloseHandle = procedure(var handle:integer);{$IFDEF WIN32} stdcall; {$ENDIF}
TIcmpSendEcho = function(var handle:integer; endereco:DWORD; buffer:variant; tam:WORD; IP:IPINFO; ICMP:ICMPECHO; tamicmp:DWORD; tempo:DWORD):DWORD;{$IFDEF WIN32} stdcall; {$ENDIF}





type
TForm1 = class(TForm)
Memo1: TMemo;
Edit1: TEdit;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);







private
{ Private declarations }
public
{ Public declarations }
end;





const MaxHeight=500;
MaxWidth=500;
MinHeight=500;
MinWidth=500;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var
wsadt : wsadata;
icmp :icmpecho;
HNDicmp : integer;
hndFile :integer;
Host :PHostEnt;
Destino :in_addr;
Endereco :^DWORD;
IP : ipinfo;
Retorno :integer;
dwRetorno :DWORD;
x :integer;

IcmpCreateFile : TIcmpCreateFile;
IcmpCloseHandle : TIcmpCloseHandle;
IcmpSendEcho : TIcmpSendEcho;

begin
if (edit1.Text = "") then begin
Application.MessageBox("Enter a HostName ro a IP Adress",
"Error", MB_OK);
exit;
end;
HNDicmp := LoadLibrary("ICMP.DLL");
if (HNDicmp <> 0) then begin
@IcmpCreateFile := GetProcAddress(HNDicmp,"IcmpCreateFile");
@IcmpCloseHandle := GetProcAddress(HNDicmp,"IcmpCloseHandle");
@IcmpSendEcho := GetProcAddress(HNDicmp,"IcmpSendEcho");
if (@IcmpCreateFile=nil) or (@IcmpCloseHandle=nil) or (@IcmpSendEcho=nil) then begin
Application.MessageBox("Error getting ICMP Adress","Error", MB_OK);
FreeLibrary(HNDicmp);
end;
end;
Retorno := WSAStartup($0101,wsadt);

if (Retorno <> 0) then begin
Application.MessageBox("Canґt Load WinSockets","WSAStartup", MB_OK);
WSACleanup();
FreeLibrary(HNDicmp);
end;

Destino.S_addr := inet_addr(Pchar(Edit1.text));
if (Destino.S_addr = 0) then begin
Host := GetHostbyName(PChar(Edit1.text));
end
else begin
Host := GetHostbyAddr(@Destino,sizeof(in_addr), AF_INET);
end;

if (host = nil) then begin
Application.MessageBox("Host not found","Error", MB_OK);
WSACleanup();
FreeLibrary(HNDicmp);
exit;
end;
memo1.Lines.Add("Pinging " + Edit1.text);

Endereco := @Host.h_addr_list;

HNDFile := IcmpCreateFile();
for x:= 0 to 4 do begin
Ip.Ttl := char(255);
Ip.Tos := char(0);
Ip.IPFlags := char(0);
Ip.OptSize := char(0);
Ip.Options := nil;

dwRetorno := IcmpSendEcho(
HNDFile,
Endereco^,
null,
0,
Ip,
Icmp,
sizeof(Icmp),
DWORD(5000));
Destino.S_addr := icmp.source;
Memo1.Lines.Add("Ping " + Edit1.text);
end;


IcmpCLoseHandle(HNDFile);
FreeLibrary(HNDicmp);
WSACleanup();



end;

end.


 
Nikolas ShmuS   (2002-09-27 23:34) [18]

http://delphi.mastak.ru/articles/icmp.html - это работает лучше!!!



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

Текущий архив: 2002.11.25;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.019 c
1-82809
neXt
2002-11-13 17:59
2002.11.25
Как в XPath указать родительский узел?


3-82678
ton2
2002-11-06 14:30
2002.11.25
Использование Access-базы из Delphi


14-82928
MJH
2002-10-23 05:30
2002.11.25
Почему


1-82784
Крот
2002-11-13 09:26
2002.11.25
Тайна синего экрана


14-82998
Залетевший
2002-11-07 19:20
2002.11.25
Биос СРОЧНО