Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Wie funktioniert IdWhoIs (Indy)? (https://www.delphipraxis.net/51219-wie-funktioniert-idwhois-indy.html)

MisterNiceGuy 9. Aug 2005 19:46

Re: Wie funktioniert IdWhoIs (Indy)?
 
oh danke, das ist nett :) Aber ich bin halt schon ein bissl traurig, dass also somit keine Abfrage (de-Adressen) über mein Programm möglich ist. :(

Kennst jemand vielleicht noch einen anderen Whois-Server für .de-Adressen?

Ursprünglich ist das Programm ja dazu da Adressen von Mario Dolzer zu erkennen und den User davor zu warnen, und der hat ja nun mal fast ausschließlich .de-Adressen.

jensw_2000 9. Aug 2005 21:18

Re: Wie funktioniert IdWhoIs (Indy)?
 
Das könnte ggf. interessant für dich sein.
http://www.iks-jena.de/cgi-bin/whois

Das Perl Script kann als OS heruntergeladen werden. (GPL)

In "Whois.pm" steht, der das Prog für DE Domains den whois.denic.de benutzen soll.


Ausschnitt aus whois.pm von Erik Heinz <erik@iks-jena.de>
-----------------------------------------------------------------------------------------------
'com' => 'whois.internic.net',
'de' => 'whois.denic.de', 'edu' => 'whois.educause.net',
'ee' => 'whois.eenet.ee',
'es' => 'https://www.nic.es/esnic/servlet/WhoisControllerHTML?tipo=dominio&dominio=%D',
-----------------------------------------------------------------------------------------------

...oder baue dir einfach flink einen HTML Parser und nutze die o.A. Website direkt zur Whois Abfrage.
Die schreiben auf ihrer Website nichts davon, das Parsen unerwünscht oder untersagt ist ...

MisterNiceGuy 9. Aug 2005 21:40

Re: Wie funktioniert IdWhoIs (Indy)?
 
Danke, die Tipps sind echt hilfreich! :) Ich hab mir mal die Dokumentation zu whois.denic.de durchgelesen und da steht, dass man per Parameterübergabe auch mehr Informationen herausholen kann. Leider akzeptiert die Indykomponente keine Parameter...

Edit: Das mit der Website ist schwierig, ich benutze Delphi 7 personal, da ist so weit ich weiß kein Webbroser drin.

jensw_2000 9. Aug 2005 23:03

Re: Wie funktioniert IdWhoIs (Indy)?
 
Warum nicht einfach über idHTTP ?

Delphi-Quellcode:
function GetWhoisByWeb(Domain:String):String;
// Das Parser Gründgerüst habe ich aus der DP, Autor leider unbekannt
// Diese Funktion nutz HTTP Dienste von [url]www.iks-jena.de[/url]
// 
var
  idHTTP:TidHTTP;
  ParamData : TStringStream;
  s:String;
  f:Textfile;
begin
  ParamData := TStringStream.Create('');

  //Result initialisieren
  Result:='';
 
  // idHTTP dynamisch erzeugen
  idHTTP:=TIDHTTP.Create(nil);

  try
    // Parameter search=erstellen und mit Domainnamen versehen
    ParamData .WriteString('search=' + Domain);

    // Post wie von einer HTML-Form simulieren
    IdHTTP.Request.ContentType := 'application/x-www-form-urlencoded';

    // Ansender = Website
    IdHTTP.Request.Referer := 'http://www.iks-jena.de/cgi-bin/whois';

    // Bin mir nicht sicher ob der Rest gebraucht wird... aber so machts der Mozilla Firefox
    // sollte also nicht verkehrt sein :)
    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
      // idHTTP (Indy7) aufrufen und Suche posten
      s:=IdHTTP.Post('http://www.iks-jena.de/cgi-bin/whois', ParamData);
    except
      on e:Exxeption do
        s:='Schwehrer Fehler beim Absenden des Befehls:'+#13#10+e.message;
    end;
   
    // gewünschten Part aus der "Result-Website" ausschneiden
    if pos('
<PRE>',s)<>0 then
    begin
       S:=Copy(s,Pos('
<PRE>',s)+9,length(s));
       s:=Copy(s,1,pos('</PRE>',s)-1);
    end
    else begin
      // oder Fehler ausgeben
      s:='Prüfung 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
    // idHTTP freigeben
    FreeAndNIL(idHTTP);
  end;

  Result:=s;

end;

Aufruf:

Delphi-Quellcode:
TForm1.Button1Click(sender:tobject);
begin
  Memo1.lines.text:=GetWhoisByWeb('web.de');
end;

MisterNiceGuy 9. Aug 2005 23:50

Re: Wie funktioniert IdWhoIs (Indy)?
 
Klasse funktioniert, vielen Dank! Hast was gut :mrgreen:

jensw_2000 10. Aug 2005 00:30

Re: Wie funktioniert IdWhoIs (Indy)?
 
Naja ...
so ganz nicht :roll:

Man hat offensichtlich nur eine beschränkte Anzahl Abfragen zur Verfügung ...

Code:
%REFERRAL START
Connection refused; access control limit reached.
%%REFERRAL END

MisterNiceGuy 10. Aug 2005 01:29

Re: Wie funktioniert IdWhoIs (Indy)?
 
weißt du nach wievielen Anfragen das kommt? Also bei mir müssen es heute abend an die 50 gewesen sein...

Übringes! Das Programm ist fertig :D Hab mich lange nicht mehr so gefreut, dass es endlich funktioniert hat!!

Ich hänge es mal an...

Edit1: Ich mach einen neues Thema auf und lösche das Programm hier.

jensw_2000 10. Aug 2005 02:36

Re: Wie funktioniert IdWhoIs (Indy)?
 
Zitat:

Man hat offensichtlich nur eine beschränkte Anzahl Abfragen zur Verfügung ...
Sorry, das war ein Fehler von mir.
Habe versehentlich das falsche "Spielprojekt" erwischt.

Die besagte Meldung kam noch unter Verwendung von idWHOIS.

Mit der beschriebenen Variante funktionierts sauber.
Ich habe bisher auch nur knapp 20 Testabfragen gemacht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:23 Uhr.
Seite 3 von 3     123   

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