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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.048 c
1-1095493907
lord vader
2004-09-18 11:51
2004.10.03
Вернуть ссылку на компоненту по её описанию в STRING-е


3-1094167004
O l e g
2004-09-03 03:16
2004.10.03
Переполнение стека, что это?


3-1094022900
-SeM-
2004-09-01 11:15
2004.10.03
Сервисы в Interbase/Firebird/Yaffil


4-1093110717
spoyler
2004-08-21 21:51
2004.10.03
Дни недели


14-1095230405
Igorek
2004-09-15 10:40
2004.10.03
Ой, верните назад





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