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

Вниз

Определение компа в локальной сети   Найти похожие ветки 

 
peek ©   (2004-07-24 14:11) [0]

Как определить, в сети ли комп под определенным IP?


 
Polevi ©   (2004-07-24 14:22) [1]

SendArp


 
Anatoly Podgoretsky ©   (2004-07-24 14:25) [2]

Определить на что он может откликаться, если ни на что, то никак


 
Dolt ©   (2004-07-24 14:34) [3]

Я себе сделал так, возможно, это не самый оптимальный вариант:
-----------------
(*
Узнать, подключен ли к сети компьютер.
Параметр - IP-адрес компа
Код возврата:
       0 - комп найден
       1 - комп не найден
       5 - нет параметра        

2004.04.22              Create                  ddiner

*)

program GetCompStatus;
uses
 SysUtils,
 Windows;

Var
 screenexe:String="nbtstat -A ";
 s:String;

procedure Dos2Win(CmdLine : string; var Line : string);
const BUFSIZE = 2000;
var SecAttr     : TSecurityAttributes;
   hReadPipe,
   hWritePipe  : THandle;
   StartupInfo : TStartUpInfo;
   ProcessInfo : TProcessInformation;
   Buffer      : Pchar;
   WaitReason,
   BytesRead   : DWord;
begin
 with SecAttr do
 begin
   nlength              := SizeOf(TSecurityAttributes);
   binherithandle       := true;
   lpsecuritydescriptor := nil;
 end;
 if Createpipe (hReadPipe, hWritePipe, @SecAttr, 0) then
 begin
   Buffer  := AllocMem(BUFSIZE + 1);
   FillChar(StartupInfo, Sizeof(StartupInfo), #0);
   StartupInfo.cb          := SizeOf(StartupInfo);
   StartupInfo.hStdOutput  := hWritePipe;
   StartupInfo.hStdInput   := hReadPipe;
   StartupInfo.dwFlags     := STARTF_USESTDHANDLES +
                              STARTF_USESHOWWINDOW;
   StartupInfo.wShowWindow := SW_HIDE;

   if CreateProcess(nil, PChar(CmdLine), @SecAttr, @SecAttr, true,
     NORMAL_PRIORITY_CLASS, nil, nil, StartupInfo, ProcessInfo) then
   begin
     repeat
       WaitReason := WaitForSingleObject( ProcessInfo.hProcess,100);
       sleep(100);
     until (WaitReason <> WAIT_TIMEOUT);
     repeat
       BytesRead := 0;
       ReadFile(hReadPipe, Buffer[0], BUFSIZE, BytesRead, nil);
       Buffer[BytesRead]:= #0;
       OemToAnsi(Buffer,Buffer);
       Line := Line + string(Buffer);
     until (BytesRead < BUFSIZE);
   end;
   FreeMem(Buffer);
   CloseHandle(ProcessInfo.hProcess);
   CloseHandle(ProcessInfo.hThread);
   CloseHandle(hReadPipe);
   CloseHandle(hWritePipe);
 end;
end;

begin
 ExitCode:=5;
 If paramCount>0 Then begin
   s:="";
   screenexe:=screenexe+paramstr(1);
   Dos2Win(screenexe,s);
   If (pos("(MAC)",s)>0)or(pos("(mac)",s)>0) then BEGIN
     ExitCode:=0
     END
   else begin
     ExitCode:=1
     end;
   end;  
end.



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

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

Наверх




Память: 0.48 MB
Время: 0.022 c
3-1094623708
Junior
2004-09-08 10:08
2004.10.03
AutoInc в таблице Paradox


8-1088608890
LAnd
2004-06-30 19:21
2004.10.03
Наложение текстур OpenGL


1-1095237628
Black
2004-09-15 12:40
2004.10.03
Почему delete(q, 0, 8) выдаёт ошибку?


4-1093241622
IXT
2004-08-23 10:13
2004.10.03
dll Eror


4-1093321751
Baloo
2004-08-24 08:29
2004.10.03
Координаты каретки в чужом приложении