yoga Postado Agosto 2, 2003 Denunciar Share Postado Agosto 2, 2003 Preciso de um componente de ICMP ou mesmo um sistema que faz o monitoramento da rede. Que de 5 em 5 segundos me diga quem esta conectado.****************URGENTE****************OBRIGADO Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 AnaoScript Postado Agosto 3, 2003 Denunciar Share Postado Agosto 3, 2003 Ae brother eu comecei aora com delphi e não conheço muito mas essa parada de verificar em 5 em 5 é só você usar o relogio que tem la nos Sistemsdai você coloca a função nele beleza Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 yoga Postado Agosto 3, 2003 Autor Denunciar Share Postado Agosto 3, 2003 Eu preciso da sintax da API da DLL ICMP do windows ou seja preciso da APIpra colocar no temporizador. Mas eu já consegui ma pagina da Microssoft, veja so:interfaceuses Windows, SysUtils, Classes;type TSunB = packed record s_b1, s_b2, s_b3, s_b4: byte; end; TSunW = packed record s_w1, s_w2: word; end; PIPAddr = ^TIPAddr; TIPAddr = record case integer of 0: (S_un_b: TSunB); 1: (S_un_w: TSunW); 2: (S_addr: longword); end; IPAddr = TIPAddr;function IcmpCreateFile : THandle; stdcall; external 'icmp.dll';function IcmpCloseHandle (icmpHandle : THandle) : boolean; stdcall; external 'icmp.dll'function IcmpSendEcho (IcmpHandle : THandle; DestinationAddress : IPAddr; RequestData : Pointer; RequestSize : Smallint; RequestOptions : pointer; ReplyBuffer : Pointer; ReplySize : DWORD; Timeout : DWORD) : DWORD; stdcall; external 'icmp.dll';function Ping(InetAddress : string) : boolean;implementationuses WinSock;function Fetch(var AInput: string; const ADelim: string = ' '; const ADelete: Boolean = true) : string;var iPos: Integer;begin if ADelim = #0 then begin // AnsiPos does not work with #0 iPos := Pos(ADelim, AInput); end else begin iPos := Pos(ADelim, AInput); end; if iPos = 0 then begin Result := AInput; if ADelete then begin AInput := ''; end; end else begin result := Copy(AInput, 1, iPos - 1); if ADelete then begin Delete(AInput, 1, iPos + Length(ADelim) - 1); end; end;end;procedure TranslateStringToTInAddr(AIP: string; var AInAddr);var phe: PHostEnt; pac: PChar; GInitData: TWSAData;begin WSAStartup($101, GInitData); try phe := GetHostByName(PChar(AIP)); if Assigned(phe) then begin pac := phe^.h_addr_list^; if Assigned(pac) then begin with TIPAddr(AInAddr).S_un_b do begin s_b1 := Byte(pac[0]); s_b2 := Byte(pac[1]); s_b3 := Byte(pac[2]); s_b4 := Byte(pac[3]); end; end else begin raise Exception.Create('Error getting IP from HostName'); end; end else begin raise Exception.Create('Error getting HostName'); end; except FillChar(AInAddr, SizeOf(AInAddr), #0); end; WSACleanup;end;function Ping(InetAddress : string) : boolean;var Handle : THandle; InAddr : IPAddr; DW : DWORD; rep : array[1..128] of byte;begin result := false; Handle := IcmpCreateFile; if Handle = INVALID_HANDLE_VALUE then Exit; TranslateStringToTInAddr(InetAddress, InAddr); DW := IcmpSendEcho(Handle, InAddr, nil, 0, nil, @rep, 128, 0); Result := (DW <> 0); IcmpCloseHandle(Handle);end;end.Mas muito OBRIGADO. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
yoga
Preciso de um componente de ICMP ou mesmo um sistema que faz o monitoramento da rede. Que de 5 em 5 segundos me diga quem esta conectado.
****************URGENTE****************
OBRIGADO
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.