Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Pin(g)GUI ... GUI für Ping, Traceroute, DNS Lookups, WHOIS (https://www.delphipraxis.net/54300-pin-g-gui-gui-fuer-ping-traceroute-dns-lookups-whois.html)

jensw_2000 1. Okt 2005 10:42


Pin(g)GUI ... GUI für Ping, Traceroute, DNS Lookups, WHOIS
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo zusammen,

Pin(g)GUI ist ein kleines Tool mit dem man folgendes (aus einer GUI) machen kann:
- Ping
- Traceroute
- DNS Lookups
- WHOIS (über WebQuery oder das klassische WHOIS Protokoll)

Faetures:
- Ping mit akkustischem Signal, wenn eine positive Antwort kommt. Man muss also nicht
auf den Monitor schauen, um zu wissen ob (bzw. ab wann) eine Verbindung steht.
Das ist besonders hilfreich wenn man irgendwelche Router konfiguriert oder am
Patchfeld die richtige Leitung sucht ..

- "Host" History

- 2 verschiedene "Pong" Klänge. Man der Programm mehrfach starten und unterschiedliche
Klänge aktivieren. Am Klang erkennt man dann, welcher Host grade antwortet ..

- detailierte DNS Query mit Infos über den Host, das Subnet und den DNS Server selbst

- WHOIS (das Protokoll) stirbt langsam aus. Die meisten WHOIS Server geben nur noch Infos über
ein Webinterface aus, nachdem man die Nutzungsbedingungen akzeptiert hat.
Pin(g)GUI unterstützt wahlweise WHOIS und WebQuery

Probiert es mal aus.
Über ein Feedback würde ich mich freuen.


Schöne Grüße,
Jens
:hi:

turboPASCAL 1. Okt 2005 11:41

Re: Pin(g)GUI ... GUI für Ping, Traceroute, DNS Lookups, WHO
 
Hi, es funktioniert alles prima.

Was man noch machen könnte ist die aktuelle Ping-Adresse in der ComboBox anzeigen, denn wenn man das Prg. startet ist sie leer, aber der Ping pingt. ;)


Zitat:

Zitat von jensw_2000
Das Programm speichert die Einstellungen in der Registry.
( HKEY_CURRENT_USER\Software\InnovaSoft\Pin(g)GUI )
Diese können jederzeit manuell gelöscht werden.
Da es kein Setup gibt, kann ich die Reg-Einträge nicht automatisch entfernen lassen.

Dazu braucht man kein Setup, Uninstall.. oder so, das kann man doch mit in das Programm einbauen, per Parameter und im Prg. oder Readme darauf hinweisen.
Code:
C:\> PingGUI.exe /uninst
bzw.
Code:
C:\> PingGUI.exe /reguninst
...wenn man es einbaut. :mrgreen:

Aber ich finde es Super das Du wenigstens darauf hingewiesen hast.

PierreB 1. Okt 2005 11:51

Re: Pin(g)GUI ... GUI für Ping, Traceroute, DNS Lookups, WHO
 
Zitat:

Das Programm speichert die Einstellungen in der Registry.
( HKEY_CURRENT_USER\Software\InnovaSoft\Pin(g)GUI )
Diese können jederzeit manuell gelöscht werden.
Da es kein Setup gibt, kann ich die Reg-Einträge nicht automatisch entfernen lassen.
Warum schreibst du auch in die Registry ? Wenns nur um Einstellungen geht dann nimm doch einfach ini-Files oder ähnliches.

Eichhoernchen 1. Okt 2005 11:58

Re: Pin(g)GUI ... GUI für Ping, Traceroute, DNS Lookups, WHO
 
Cool, hab nur ein Problem, ich kann aus dem Ausgabefenster nichts Kopieren!

Ich kann zwar auf Kopieren drücken aber er tut das nicht!

mh166 1. Okt 2005 15:24

Re: Pin(g)GUI ... GUI für Ping, Traceroute, DNS Lookups, WHO
 
Also ich find das im Prinzip recht praktisch, ABER :mrgreen: : Ich kanns nich wirklich nutzen, da ich über nen Proxy ins Netz gehe. Soll heißen ich müsste jedesmal SocksCap starten, um den Traffic durch nen Socks-Tunnel umzuleiten. Is mir ehrlich gesagt zu viel Aufwand. Wäre also nett, wenn du mit IdProxy oder so da was machen könntest :)

Ansonsten bringt der mir beim Whois ne Exception: Host not found (da er ja nich ins Netz kommt). Beim Ping wird so ein Fehler hingegen nur im Log angezeigt. Wäre also nett, wenn du dich entscheiden könntest ;)

mfg, mh166

jensw_2000 2. Okt 2005 02:22

Re: Pin(g)GUI ... GUI für Ping, Traceroute, DNS Lookups, WHO
 
@turboPASCAL

Zitat:

Was man noch machen könnte ist die aktuelle Ping-Adresse in der ComboBox anzeigen, denn wenn man das Prg. startet ist sie leer, aber der Ping pingt.
Wenn kein Host angegeben wurde, verwendet das Programm den Hostnamen des lokalen PC's.
Dieser wird jetzt auch angezeigt, sobald man einen Button klickt, ohne das ein Host eingegeben wurde.

Zitat:

Dazu braucht man kein Setup, Uninstall.. oder so, das kann man doch mit in das Programm einbauen, per Parameter und im Prg. oder Readme darauf hinweisen.
Im Programm ist jetzt was geändert.

Per Default werden keine Einstellungen gespeichert und eventuell vorhandene Registry-Einträge des Programms gelöscht.
Wenn der User seine Einstellungen speichern möchte, kann er in den Einstellungen das Häkchen "Einstellungen nicht speichern" rausnehmen. Zum Bereinigen der Registry ist der Haken einfach nur wieder zu setzen ...


@Eichhörnchen
Zitat:

Cool, hab nur ein Problem, ich kann aus dem Ausgabefenster nichts Kopieren!

Ich kann zwar auf Kopieren drücken aber er tut das nicht!
Die einzige Stelle wo man etwas kopieren könnte ich beim Whois..

Die Whois-Abfrage loggt derzeit in einen TWebbrowser. Um das IE-Eigene Popupmenu (Rechtsklick) zu verstecken, damit man was Eigenes einbauen kann, muss man Hooks verwenden. Das möchte ich möglichst vermeiden.

Komisch ist nur, warum der TWebbrowser nicht auf CTRL+C oder Rechtsklick->Kopieren reagiert. :gruebel:
Das ist mir bisher noch garnicht aufgefallen ...


@PierreB
Zitat:

Warum schreibst du auch in die Registry ? Wenns nur um Einstellungen geht dann nimm doch einfach ini-Files oder ähnliches.
Die Registry bietet den Vorteil, das man das Tool auch mal auf CD oder schreibgeschütztem Memorystick mit zum Kunden nehmen kann.

Genaugenonnen finde ich, das man "Datei-Leichen" genauso weinig auf fremden Rechnern hinterlassen sollte wie Reg-Einträge ...


@mh166
Zitat:

Also ich find das im Prinzip recht praktisch, ABER : Ich kanns nich wirklich nutzen, da ich über nen Proxy ins Netz gehe. Soll heißen ich müsste jedesmal SocksCap starten, um den Traffic durch nen Socks-Tunnel umzuleiten. Is mir ehrlich gesagt zu viel Aufwand. Wäre also nett, wenn du mit IdProxy oder so da was machen könntest
hm... ich werde das Tool wohl erstmal als "Nicht Socks-tauglich" deklarieren.
Wenn ich mal viel Zeit habe beschäftige ich mich mit idProxy ...

Zitat:

Ansonsten bringt der mir beim Whois ne Exception: Host not found (da er ja nich ins Netz kommt). Beim Ping wird so ein Fehler hingegen nur im Log angezeigt. Wäre also nett, wenn du dich entscheiden könntest
Das wäre geregelt.
Keine Exception mehr, dafür ein netter Hinweis im Log :zwinker:

Die aktualisierte Version liegt im ersten Post ....

Danke fürs Testen ...
Schöne Grüße,
Jens

:hi:

PierreB 2. Okt 2005 11:20

Re: Pin(g)GUI ... GUI für Ping, Traceroute, DNS Lookups, WHO
 
Zitat:

Zitat von jensw_2000
@PierreB
Zitat:

Warum schreibst du auch in die Registry ? Wenns nur um Einstellungen geht dann nimm doch einfach ini-Files oder ähnliches.
Die Registry bietet den Vorteil, das man das Tool auch mal auf CD oder schreibgeschütztem Memorystick mit zum Kunden nehmen kann.

Was ? Eher umgekehrt ! Wenn du dein Programm auf CD kopierst werden doch die Werte aus der Registry nicht mitgegeben !?

Palando 2. Okt 2005 11:50

Re: Pin(g)GUI ... GUI für Ping, Traceroute, DNS Lookups, WHO
 
Zitat:

Zitat von PierreB
Zitat:

Zitat von jensw_2000
@PierreB
Zitat:

Warum schreibst du auch in die Registry ? Wenns nur um Einstellungen geht dann nimm doch einfach ini-Files oder ähnliches.
Die Registry bietet den Vorteil, das man das Tool auch mal auf CD oder schreibgeschütztem Memorystick mit zum Kunden nehmen kann.

Was ? Eher umgekehrt ! Wenn du dein Programm auf CD kopierst werden doch die Werte aus der Registry nicht mitgegeben !?

Ich denke er meint damit, dass man die Exedatei auf ne CD schreiben kann und man, wenn man die Datei von dort aus dann ausführt, keine Probleme damit auftauchen können, weil er ja keine ini Datei ins ExeVerzeichnis schreiben kann.
Das ließe sich aber auch so lösen, dass er, wenn er die Ini nicht schreiben kann, selbiges einfach sein lässt...

PierreB 2. Okt 2005 11:55

Re: Pin(g)GUI ... GUI für Ping, Traceroute, DNS Lookups, WHO
 
Zitat:

Zitat von Palando
Zitat:

Zitat von PierreB
Zitat:

Zitat von jensw_2000
@PierreB
Zitat:

Warum schreibst du auch in die Registry ? Wenns nur um Einstellungen geht dann nimm doch einfach ini-Files oder ähnliches.
Die Registry bietet den Vorteil, das man das Tool auch mal auf CD oder schreibgeschütztem Memorystick mit zum Kunden nehmen kann.

Was ? Eher umgekehrt ! Wenn du dein Programm auf CD kopierst werden doch die Werte aus der Registry nicht mitgegeben !?

Ich denke er meint damit, dass man die Exedatei auf ne CD schreiben kann und man, wenn man die Datei von dort aus dann ausführt, keine Probleme damit auftauchen können, weil er ja keine ini Datei ins ExeVerzeichnis schreiben kann.
Das ließe sich aber auch so lösen, dass er, wenn er die Ini nicht schreiben kann, selbiges einfach sein lässt...

Aber ohne Administratorrechte kann man auch nicht überall in die Registry schreiben. Außerdem lieber schlägt das Schreiben in Ini-Dateien fehl, als wenn irgendwelche Datenleichen in meiner Registry kleben bleiben. :zwinker:

Palando 2. Okt 2005 11:58

Re: Pin(g)GUI ... GUI für Ping, Traceroute, DNS Lookups, WHO
 
Zitat:

Zitat von PierreB
Aber ohne Administratorrechte kann man auch nicht überall in die Registry schreiben. Außerdem lieber schlägt das Schreiben in Ini-Dateien fehl, als wenn irgendwelche Datenleichen in meiner Registry kleben bleiben. :zwinker:

In Current User kann an immer schreiben, dachte ich?
Aber das is nur Halbwissen, weil ich mich damit noch nie beschäftigt habe, ich glaube es nur mal hier aufgeschnappt zu haben...

Und natürlich würde ich auch die ini der Registry vorziehen, weil sie meiner meinung nach auch für den Benutzer einfach praktischer ist.

Zacherl 2. Okt 2005 13:05

Re: Pin(g)GUI ... GUI für Ping, Traceroute, DNS Lookups, WHO
 
Im CurrentUser kann man auch nur schreiben, wenn der Admin nicht die Schreibrechte für den Schlüssel entzogen hat.

Florian

jensw_2000 2. Okt 2005 14:26

Re: Pin(g)GUI ... GUI für Ping, Traceroute, DNS Lookups, WHO
 
Diese entlose Diskussion "Registry vs. ini" hatten wir hier schon so oft.
Dabei kam im Endeffekt immer das selbe heraus:
Man kann das Thema nicht pauschalisieren.
Vorrangig gibt die Anwendung vor, wo Einstellungen am besten gespeichert werden.

Damit wir eventuell wieder zum Thema zurückkommen können, möchte ich meine Beweggründe, die Einstellungen im Zweig HKEY_CURRENT_USER der Registry zu speichern, hier mal kurz aufführen.

Es macht bei dem Programm keinen Sinn, eine INI im Programmverzeichnis anzulegen.
Wenn das Programm von einem Read-Only Medium gestartet wird, könnte man seine Einstellungen nicht speichern und die Host-History würde auf dem Stand "Brennzeitpunkt der CD" bleiben.
Zudem ist es beim Kunden relativ nutzlos, wenn in der "Host-History" meine IP-Adressen und Hostnamen stehen.

Damit ist klar, das die Daten irgendwo auf dem "ausführendem" System gespeichert werden müssen.

Weil die Anwender keine Admin-Rechte haben sollten, und ein zentrales Speichern von Einstellungen (z.B. HKEY_LOCAL_MACHINE, ALL_USERS_PROFILE, %PROGRAMFILESDIR% usw.) zusätzliche Rechte erfordern würde (und bei diesen Programm auch keinen Sinn macht), bleibt nun also nur noch die Entscheidung "ini im %HOMEDIR%" oder "Registry HKEY_CURRENT_USER".

Für normale Einsatzzwecke ist das Programmtechnisch relativ egal und reine Geschmackssache.
Ich bevorzuge die Registry, weil z.B.
- keine API Funktionen benötigt werden, um bei unterschiedlichen Windows-Sprachversionen zuverlässig den Ordnernamen "%USERPROFILEDIR%\Anwendungsdaten\.." zu ermitteln.
- Die Registry einfach pflegeleichter ist (Es gibt 100te Tools um Registry-Leichen zu entfernen, aber kaum eins, um Dateileichen zuverlässig zu lokalisieren)
- das Programm auch noch arbeitet, wenn man es von einer BART-WinPE CD verwendet (%HOMDIR% ist da Readonly, die Registry liegt im RAM)


@Florian
Zitat:

Im CurrentUser kann man auch nur schreiben, wenn der Admin nicht die Schreibrechte für den Schlüssel entzogen hat.
Ich kenne keinen Admin der sich mit sowas das Leben schwehr macht. Vermutlich würden 90% aller Anwendungen auf dem System mit Fehlermeldungen um sich werfen. Er könnte dem User genauso die Schreibrechte auf sein %HOMEDIR% klauen, und hätte keine ruhige Minute mehr ...

Wenn man aufgeräumte und standardisierte UserProfiles haben möchte, wäre es leichter, die Profiles beim Starten des Rechners (über das System-Startscript) zu löschen, damit diese beim Anmelden eines Benutzers, sauber aus dem DEFALUT USER Profil erstellt werden.


Falls es jetzt noch weiteren Diskussionsbedarf zum Thema Registry vs. INI geben sollte, dann macht bitte einen neuen Tread auf.

In diesen Thread geht es um Meinungen, Hinweise und Verbesserungsvorschläge zu dem Programm.


Schöne Grüße,
Jens
:hi:

PierreB 2. Okt 2005 15:17

Re: Pin(g)GUI ... GUI für Ping, Traceroute, DNS Lookups, WHO
 
Hey,

habs mir jetzt nochmal etwas genauer angeguckt. Die Whois-Abfrage geht bei mir gar nicht (W2k SP4), ich bekommen immer eine Zugriffsverletzung.

Und nen kleinen Rechtschreibfehler hab ich noch entdeckt: Ganz unten steht Alle Rechte vorbahalten. ;)

Zacherl 2. Okt 2005 16:43

Re: Pin(g)GUI ... GUI für Ping, Traceroute, DNS Lookups, WHO
 
Hallo,
ganz nett das Programm. Hab auch nichts zu meckern, außer - wie gesagt - solltest du Einstellungen in einer INI Datei speichern.

Florian

jensw_2000 2. Okt 2005 17:14

Re: Pin(g)GUI ... GUI für Ping, Traceroute, DNS Lookups, WHO
 
Zitat:

Zitat von PierreB
Hey,

habs mir jetzt nochmal etwas genauer angeguckt. Die Whois-Abfrage geht bei mir gar nicht (W2k SP4), ich bekommen immer eine Zugriffsverletzung.

Und nen kleinen Rechtschreibfehler hab ich noch entdeckt: Ganz unten steht Alle Rechte vorbahalten. ;)

Whois loggt offline in einen TWebbrowser. Kann es sein, das auf deinem System irgendwas mit dem Internet-Explorer nicht stimmt, oder du über einen Proxy ins Internet gehst ? (Evtl. "virtueller Proxy" eines Antiviren-Programms).

Nutzt du die Whois WebQuery oder einen Whois-Server ?
Schau mal bitte, ob der Fehler bei beiden Abfrage-Arten auftritt.
(den Haken "Einstellungen > weitere Einstellungen > WHOIS > WebQuery anstatt Whois Protokoll nutzen" einmal setzen + testen und einmal rausnehmen + testen ...)


Wäre schön wenn du mir ein paar genauere Infos zu dem Fehler geben könntest, damit ich ihn besser lokalisieren kann (Adresse, Eventlog Einträge usw.)

Den Rechtschreibfehler habe ich korrigiert (kommt mit dem nächsten Update).

Danke für den Hinweis,
Jens

:hi:

PierreB 2. Okt 2005 17:18

Re: Pin(g)GUI ... GUI für Ping, Traceroute, DNS Lookups, WHO
 
Fehler tritt nur bei WhoisQuery auf, Adresse is egal, geht bei keiner, mit Internet Explorer sollte alles in Ordnung sein, kein Proxy...

jensw_2000 2. Okt 2005 17:24

Re: Pin(g)GUI ... GUI für Ping, Traceroute, DNS Lookups, WHO
 
Zitat:

Zitat von PierreB
Fehler tritt nur bei WhoisQuery auf, Adresse is egal, geht bei keiner, mit Internet Explorer sollte alles in Ordnung sein, kein Proxy...

Das heist, bei einer Whois Abfrage über http (Whois WebQuery) tritt der Fehler auf, und bei einer Whois Abfrage über das klassische WHOIS Protokoll gibt es keine Fehlermeldung ?

Kannst du mal einen Screenshot von der Fehlermeldung machen und posten ?

[Edit]
An Win2000 + SP4 kanns nicht liegen. Ich habe es grade auf unserem Terminalserver gestetet ...
[/Edit]

Danke,
Jens
:hi:

PierreB 2. Okt 2005 17:32

Re: Pin(g)GUI ... GUI für Ping, Traceroute, DNS Lookups, WHO
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von jensw_2000
Zitat:

Zitat von PierreB
Fehler tritt nur bei WhoisQuery auf, Adresse is egal, geht bei keiner, mit Internet Explorer sollte alles in Ordnung sein, kein Proxy...

Das heist, bei einer Whois Abfrage über http (Whois WebQuery) tritt der Fehler auf, und bei einer Whois Abfrage über das klassische WHOIS Protokoll gibt es keine Fehlermeldung ?

Exakt.

Fehlermeldung ist im Anhang... (Das ist die erweiterte Ansicht, zuerst kommt nur ne Meldung "Zugriffsverletzung in xxxxxx")

Luckie 2. Okt 2005 17:35

Re: Pin(g)GUI ... GUI für Ping, Traceroute, DNS Lookups, WHO
 
Du solltest dazu schreiben, dass man Administratrorrechte braucht um zu Pingen.

jensw_2000 2. Okt 2005 17:49

Re: Pin(g)GUI ... GUI für Ping, Traceroute, DNS Lookups, WHO
 
Zitat:

Zitat von Luckie
Du solltest dazu schreiben, dass man Administratrorrechte braucht um zu Pingen.

Hoopps ..

eventuell sollte ich doch mal die Indys aktualisieren.
Der Fehler kommt bein Aufruf von idICMP.Ping, wenn man nur normale Benutzerrechte hat ...

Danke für den Hinweis ...
:hi:

jensw_2000 2. Okt 2005 18:02

Re: Pin(g)GUI ... GUI für Ping, Traceroute, DNS Lookups, WHO
 
Zitat:

Zitat von PierreB
Zitat:

Zitat von jensw_2000
Zitat:

Zitat von PierreB
Fehler tritt nur bei WhoisQuery auf, Adresse is egal, geht bei keiner, mit Internet Explorer sollte alles in Ordnung sein, kein Proxy...

Das heist, bei einer Whois Abfrage über http (Whois WebQuery) tritt der Fehler auf, und bei einer Whois Abfrage über das klassische WHOIS Protokoll gibt es keine Fehlermeldung ?

Exakt.

Fehlermeldung ist im Anhang... (Das ist die erweiterte Ansicht, zuerst kommt nur ne Meldung "Zugriffsverletzung in xxxxxx")


Delphi-Quellcode:
OleVariant(WhoisReply.Document).Clear;  
OleVariant(WhoisReply.Document).Write(GetWhoisByWeb(edtHost.Text)); <<<< Hier kommt bei dir der Fehler
OleVariant(WhoisReply.Document).Close;
Kann ich mit nicht erklären, und reproduzieren kann ich den Fehler auch nicht.
Stellt der TWebbrowser irgendwelche Anforderungen an das System ?
Den Webbrowser benutze ich nur Offline. Die Daten ziehe ich mit idHTTP aus dem Netz. Das geht schneller.

Hier die passende Funktion ...
Delphi-Quellcode:
function GetWhoisByWeb(Domain: string): string;
var
  idHTTP: TidHTTP;
  ParamData: TStringStream;
  s: string;
  f: Textfile;
begin
  ParamData := TStringStream.Create('');

  s := '';
  Result := s;

  idHTTP := TIDHTTP.Create(nil);

  try

    ParamData.WriteString('search=' + Domain);

    IdHTTP.Request.ContentType := 'application/x-www-form-urlencoded';
    IdHTTP.Request.Referer := 'http://www.iks-jena.de/cgi-bin/whois';
    IdHTTP.Request.AcceptCharset := 'ISO-8859-1,utf-8;q=0.7,*;q=0.7';
    IdHTTP.Request.AcceptEncoding := 'gzip,deflate';
    IdHTTP.Request.AcceptLanguage := 'de-de,de;q=0.8,en-us;q=0.5,en;q=0.3';

    try
      s := IdHTTP.Post('http://www.iks-jena.de/cgi-bin/whois', ParamData);
    except
      S:='';
    end;

    if pos('
<PRE>', s) <> 0 then
    begin
      S := Copy(s, Pos('
<PRE>', s) + 4, length(s));
      s := Copy(s, 1, pos('</PRE>', s) + 5);
    end
    else
    begin
      s := 'Whois nicht möglich!' + #13#10 +
        'Entweder sind Ihre Eingaben unvollständig oder' + #13#10 +
        'es besteht keine Verbindung zu http://www.iks-jena.de';
    end;

  finally
    FreeAndNIL(idHTTP);
  end;

  Result := s;
end;

jmit 5. Okt 2005 08:10

Re: Pin(g)GUI ... GUI für Ping, Traceroute, DNS Lookups, WHO
 
Hallo,

ich habe den DNS Server eingetragen, dieser lässt sich auch mit dem Tool anpingen, aber die Hostnamen können nicht über den DNS aufgelöst werden. Fehlermeldung: DNS-Server antwortet nicht, sonst funktioniert aber alles. :(

Sonst schickes Tool. :thumb: :thumb:

Gruß Jörg


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:09 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