AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte LuckiePing
Thema durchsuchen
Ansicht
Themen-Optionen

LuckiePing

Ein Thema von Luckie · begonnen am 19. Mär 2006 · letzter Beitrag vom 2. Dez 2010
Antwort Antwort
Seite 17 von 17   « Erste     7151617   
Benutzerbild von Luckie
Luckie
Registriert seit: 29. Mai 2002
Da ja anscheinend Ping Programme gerade Mode sind: http://www.delphipraxis.net/internal...ct.php?t=78344 will ich auch mal meine Version vorstellen. Gerechterweise, muss ich sagen, dass ich die Ping Unit von retnyg benutze. Das Programm ist OpenSource und nonVCL.

Anzeigen von:
  • Computername
  • IP
  • MAC Adresse
  • Domain
  • Servertyp
  • Betriebssystem
  • Kommentar zum Rechner
  • Antwortzeit

Features:
  • Multithreaded
  • Verbose Mode
  • Rechner mit Freigaben haben ein ander4es Icon
  • Doppelklick öffnet den Rechner im Explorer

To do:
  • Benutzer kann Threadanzahl selber wählen (in vernünftigen Grenzen)
  • Export in eine CSV Datei

Aktuelleversion 1.0.6.320:
Performance verbessert. Ich habe gerade eben innerhalb von 30 Sekunken ein ganzes Subnet durchgepingt. (Verbose war deaktiviert, damit er nicht alle Informationen ermittelt.)
Bugfixes.
Sourcen zur Aktuellenversione werden nachgereicht.

Aktuelle Version: 1.0.6.321:
Threads auf 25 begrenzt. Bei 255 Threads verliert man etwas die Kontrolle und es dauert ewig bis alle Threads beendet sind, wenn man abbricht, da viele Threads blockiert sind, wenn sie gerade Informationen zu den Rechnern ermitteln.

Aktuelle Version: 1.0.6.322:
Rechner mit Freigaben haben ein entsprechendes Icon.
Doppelklick öffnet den Rechner im Explorer

Aktuelle Version: 1.0.6.327:
Sekunden korrigiert, waren wirkölich etwas schnell.
Öffnen eine Rechners per Doppelklick oder Leertaste in einem eigenen Thread.

Aktuelle Version 1.0.0.7:
Vertauschte IP Adressen werden automatisch korrigiert
Vorerst die Final.

Aktueller Screenshot im Anhang.
Miniaturansicht angehängter Grafiken
luckieping_168.png  
Angehängte Dateien
Dateityp: zip luckieping_114.zip (116,1 KB, 859x aufgerufen)
Dateityp: exe luckieping_182.exe (38,0 KB, 643x aufgerufen)
Ein Teil meines Codes würde euch verunsichern.
 
Benutzerbild von Luckie
Luckie

 
Delphi 2006 Professional
 
#161
  Alt 24. Sep 2008, 21:48
Es kommt eben immer darauf an, wie die Rechner reagieren und wie viele es sind. Und was meinst mit mit "Bereich bis 255"?
Michael
  Mit Zitat antworten Zitat
Benutzerbild von Mackhack
Mackhack

 
Delphi 2006 Architect
 
#162
  Alt 24. Sep 2008, 22:25
Zitat von Luckie:
Es kommt eben immer darauf an, wie die Rechner reagieren und wie viele es sind. Und was meinst mit mit "Bereich bis 255"?
Wahrscheinlich der IP Wertebereich!
  Mit Zitat antworten Zitat
Speedy08
 
#163
  Alt 26. Aug 2010, 13:19
Hallo Luckie,

hab bisher für Netzwerkdiagnosen immer gern dein Tool benutzt. Allerdings mag es unter Windows 7 nicht mehr funktionieren. Hast du eine Idee, woran es liegt. Selbst wenn ich es mit Adminrechten starte, kommt kein Resultat zu stande.

Viele Grüsse
Matthias
  Mit Zitat antworten Zitat
Benutzerbild von ChrisE
ChrisE

 
Delphi 10.2 Tokyo Professional
 
#164
  Alt 26. Aug 2010, 14:46
Hallo Speedy08,

ich bin zwar nicht der Luckie, ich hab es mir aber trotzdem mal angeschaut. Dadurch, dass die Sourcen dabei sind, kannst du dir ja die EXE selber neu bauen. Du brauchst nur in der Unit retPing.pas in der function ICMPPing(Ip: DWORD): boolean; in der Zeile DW := IcmpSendEcho(Handle, in_addr(Ip), nil, 0, nil, @rep, 128, 0); aus dem letzten Parameter (der ist zuständig für den TimeOut aus der 0 z.B. eine 100 machen (= 100 ms).

Dann scheint es schon zu Funktionieren.

Wenn man es Debuggen möchte kann man sich auch noch etwas mehr Infos dazu holen. Einfach folgendes noch nach dieser Zeile einfügen:
Delphi-Quellcode:
  if DW = 0 then
  begin
    DW := GetLastError;
    OutputDebugString(PChar(SysErrorMessage(DW) + ' -> ' + IntToStr(DW)));
  end;
Mit hilfe der folgenden Tabelle die ich von hier habe, kann man aus den Codes wie ich finde noch etwas mehr lesen:
Delphi-Quellcode:
   Const IP_SUCCESS = 0
   Const INADDR_NONE = &HFFFFFFFF
   Const IP_BUF_TOO_SMALL = (11000 + 1)
   Const IP_DEST_NET_UNREACHABLE = (11000 + 2)
   Const IP_DEST_HOST_UNREACHABLE = (11000 + 3)
   Const IP_DEST_PROT_UNREACHABLE = (11000 + 4)
   Const IP_DEST_PORT_UNREACHABLE = (11000 + 5)
   Const IP_NO_RESOURCES = (11000 + 6)
   Const IP_BAD_OPTION = (11000 + 7)
   Const IP_HW_ERROR = (11000 + 8)
   Const IP_PACKET_TOO_BIG = (11000 + 9)
   Const IP_REQ_TIMED_OUT = (11000 + 10)
   Const IP_BAD_REQ = (11000 + 11)
   Const IP_BAD_ROUTE = (11000 + 12)
   Const IP_TTL_EXPIRED_TRANSIT = (11000 + 13)
   Const IP_TTL_EXPIRED_REASSEM = (11000 + 14)
   Const IP_PARAM_PROBLEM = (11000 + 15)
   Const IP_SOURCE_QUENCH = (11000 + 16)
   Const IP_OPTION_TOO_BIG = (11000 + 17)
   Const IP_BAD_DESTINATION = (11000 + 18)
   Const IP_ADDR_DELETED = (11000 + 19)
   Const IP_SPEC_MTU_CHANGE = (11000 + 20)
   Const IP_MTU_CHANGE = (11000 + 21)
   Const IP_UNLOAD = (11000 + 22)
   Const IP_ADDR_ADDED = (11000 + 23)
   Const IP_GENERAL_FAILURE = (11000 + 50)
   Const IP_PENDING = (11000 + 255)
   Const PING_TIMEOUT = 500
@Luckie:
Ich weiß ja, dass diese Unit's nicht von Dir sind, dennoch würde ich hier bei anders vorgehen:
Delphi-Quellcode:
function ICMPPing(Ip: DWORD): boolean;
var
  Handle : THandle;
  DW : DWORD;
  rep : ICMP_ECHO_REPLY;// hier nicht ein Array von 1..128 of Byte
begin
  result := false;
  Handle := IcmpCreateFile;
  if Handle = INVALID_HANDLE_VALUE then Exit;
  DW := IcmpSendEcho(Handle, in_addr(Ip), nil, 0, nil, @rep, sizeOf(rep), 100); // hier immer sizeOf(rep) anstatt fix die Zahl 128
  Result := (DW <> 0);
  if DW = 0 then
  begin
    DW := GetLastError;
    OutputDebugString(PChar(SysErrorMessage(DW) + ' -> ' + IntToStr(DW)));
  end;
  
  IcmpCloseHandle(Handle);
end;
Aber das nur anbei. Es funktioniert ja auch so wie es ist, wenn man noch den TimeOut hinzufügt.

Gruß, Chris
Christian E.
  Mit Zitat antworten Zitat
Speedy08
 
#165
  Alt 26. Aug 2010, 15:36
Hallo Christian,

vielen Dank für den Tipp, genaus das war es!

Viele Grüsse
Matthias
  Mit Zitat antworten Zitat
rakekniven

 
Delphi XE5 Professional
 
#166
  Alt 2. Dez 2010, 09:30
Hi,

kann man den Wert für Timeout generell auf 100 setzen oder sollte man auf das OS prüfen und dies nur bei Win 7 tun?

Habe gerade den Wert auf 100 geändert und es tut auch auf Win XP.

Gruß
Frag google
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 17 von 17   « Erste     7151617   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz