Delphi-PRAXiS
Seite 16 von 17   « Erste     6141516 17      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   LuckiePing (https://www.delphipraxis.net/65675-luckieping.html)

nicodex 5. Mai 2008 17:13

Re: LuckiePing
 
Zitat:

Zitat von renekr
Hast du diese Funktion mal unter Vista getestet oder liegt es ev. an Rechten oder der UAC.

IcmpSendEcho() mag unter Vista keinen TimeOut von 0.

Ersetze IcmpPing (in retPing.pas) durch diese Version:
Delphi-Quellcode:
(**)
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;
...dann sollte es wieder funktionieren.

Der.Kaktus 5. Mai 2008 17:20

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).

mleyen 5. Mai 2008 17:29

Re: LuckiePing
 
Zitat:

Zitat von Luckie
Was für eine Auflösung benutzt du denn, damit ich mir das mal angucken kann.

1024 x 768er Auflösung

Habs grad unter Vista probiert, da findet der keinen Rechner.

renekr 5. Mai 2008 17:37

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.

Luckie 6. Mai 2008 08:45

Re: LuckiePing
 
Zitat:

Zitat von Der.Kaktus
@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).

Dann sind noch nicht alle Pings zurückgekehrt.

Der.Kaktus 4. Jun 2008 15:32

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.

Luckie 4. Jun 2008 21:07

Re: LuckiePing
 
Zitat:

Zitat von Der.Kaktus
2: evtl. eine Ini-Datei, welche man laden/speichern kann mit IP-Adress-Bereichen, bei Vielbenutzung sehr hilfreich.

Mal sehen, wen nich Zeit finde. Ich habe auch schon Verbesserungsvorschläge für den Usermanager und den Filecrypter auf der Liste stehen. Die mus sich nach und nach mal abarbeiten, wobei der Usermanager die höchste Priorität besitzt, weil ich damit etwas Geld verdiene. ;)

renekr 24. Sep 2008 15:43

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

Mackhack 24. Sep 2008 15:56

Re: LuckiePing
 
Gibts bei dieser Funktion keinen TimeOut den du setzen kannst?

jokerfacehro 24. Sep 2008 16:06

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.
Seite 16 von 17   « Erste     6141516 17      

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