![]() |
Re: LuckiePing
Zitat:
Ersetze IcmpPing (in retPing.pas) durch diese Version:
Delphi-Quellcode:
...dann sollte es wieder funktionieren.
(**)
type PIPAddr = ^TIPAddr; TIPAddr = record S_un: record case Integer of 1: ( S_un_b: record s_b1: Byte; s_b2: Byte; s_b3: Byte; s_b4: Byte; end); 2: ( S_un_w: record s_w1: Word; s_w2: Word; end); 4: ( S_addr: LongWord); end; end; PIpOptionInformation32 = ^TIpOptionInformation32; TIpOptionInformation32 = record Ttl : Byte; Tos : Byte; Flags : Byte; OptionsSize: Byte; OptionsData: LongWord; // Pointer32 end; PIcmpEchoReply32 = ^TIcmpEchoReply32; TIcmpEchoReply32 = record Address : TIPAddr; Status : LongWord; RoundTripTime: LongWord; DataSize : Word; Reserved : Word; Data : LongWord; // Pointer32 Options : TIpOptionInformation32; end; (**) function IcmpPing(IP: DWORD): Boolean; var IcmpHandle: THandle; ReplyBuffer: record EchoReply: TIcmpEchoReply32; end; begin Result := False; IcmpHandle := IcmpCreateFile; if IcmpHandle <> INVALID_HANDLE_VALUE then try FillChar(ReplyBuffer, SizeOf(ReplyBuffer), 0); Result := IcmpSendEcho(IcmpHandle, TInAddr(IP), nil, 0, nil, @ReplyBuffer, SizeOf(ReplyBuffer), 1000) <> 0; {$IFDEF DEBUG} if not Result then Assert(GetLastError() <> ERROR_INVALID_PARAMETER, 'IcmpSendEcho: Invalid Parameters!'); {$ENDIF DEBUG} finally IcmpCloseHandle(IcmpHandle); end; end; |
Re: LuckiePing
@Luckie: Prima Progi ! ..habe nur festgestellt , bei einem Test eines groesseren IP-Adress-Bereichs, es wurden 7 Threads nicht beendet(Stand zumindestens in Deinem Programm)..waren ca. 2500 Geraete die ich gescannt habe. Aber Programm lies sich beenden(ohne abzuschiessen).
|
Re: LuckiePing
Zitat:
Habs grad unter Vista probiert, da findet der keinen Rechner. |
Re: LuckiePing
Hi nico,
Danke für die Info. Werd es morgen gleich testen. Dann stelle ich das Ergebniss hier rein. Also ich habe es implementiert und es geht super. Auch unter XP funzt es immer ncoh. Vielen Vielen Dank. |
Re: LuckiePing
Zitat:
|
Re: LuckiePing
Hallo Micha,
haette noch 2 Sachen zu dem Programm zum aendern bzw. erweitern 1: bei Aufloesung (grosse Schriftarten)..ueberschreibt der Listview die Eingabefelder (IP-bereiche). ich loes das immer mit scaled=true..aber das ist ja nicht VCL. 2: evtl. eine Ini-Datei, welche man laden/speichern kann mit IP-Adress-Bereichen, bei Vielbenutzung sehr hilfreich. P.S.: heute eins aus der CT probiert (testhalber)..kann zwar Auswahl..aber dauert sehr sehr!!! lange. |
Re: LuckiePing
Zitat:
|
Re: LuckiePing
Hi Lucky,
Ich habe mal ne Frage: Ich nehme die GetIPAdress Function und wen n1 PC nicht an ist oder nicht existiert dauert es verständlicherweise sehr lang bis das Programm weitermacht bei mir. gibt es da eine andere Lösung? Kann ich ev. den Rechnername gegen den DHCP werfen udn bekomme dann eine IP ? Danke |
Re: LuckiePing
Gibts bei dieser Funktion keinen TimeOut den du setzen kannst?
|
Re: LuckiePing
bei mir dauert das ewig, bis er intranet gescannt hat, vom adressbereich meiner inet adresse ganz zu schweigen, da braucht das proggi was im 1.beitrag verlinkt ist maximal 10sek.
ansonsten schöner aufbau, aber das von hand eingeben der adressen is ganz schön nervig und warum ist der bereich bis 255? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:43 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz