problem mit whois

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • problem mit whois

    hi
    ich bin grade dabei eine whois abfrage zu machen. es soll nur ausgegeben werden, ob die domain noch verfügbar ist oder nicht. also keine infos über den inhaber oder sonstiges.

    hier der code:
    PHP-Code:
        if (!empty($domain) && $errorlevel == 0)
              {
            
    $fp fsockopen("$whois_serv"43, &$errno, &$errstr30);
                if(!
    $fp)
                {
                
    $output "Frei!";

                }
            else
                {
                 
    $output "Belegt!";
                }
              }
        echo 
    $output
    ich habe den code aus einem fertigen whois script übernommen und für meine zwecke angepasst. wenn in den zwei if bedingungen, in denen $output definiert wird steht, dass er die infos zum besitzer der domain ausgeben soll, dann funktioniert alles.
    wenn ich es aber so mache, wie in dem code oben, dann wird IMMER die untere if bedingung ( else { $output = "Belegt!"; } ) ausgegeben.. woran liegt das?

    hier der ursprüngliche code:
    PHP-Code:
        if (!empty($domain) && $errorlevel == 0
              { 
            
    $fp fsockopen("$whois_serv"43, &$errno, &$errstr30); 
                if(!
    $fp
                { 
                
    $output "$errstr ($errno)<br>\n"
                } 
            else 
                { 
                    
    fputs($fp,"$domain\n"); 
                    while(!
    feof($fp)) 
                    { 
                    
    $output $output ereg_replace("\t""&nbsp;"fgets($fp,128)) . "<BR>\n"
                    } 
                
    fclose($fp); 
                   } 
              } 
        return 
    $output//is in ner funktion. drum return und nich echo 
    die definition von den servern hab ich jeweils weggelassen, weil sie keine rolle spielen..

    gruß

  • #2
    Re: problem mit whois

    $fp = fsockopen("$whois_serv", 43, &$errno, &$errstr, 30);
    liefert einen handle zurück, wenn das ansprechen des whois-servers geklappt hat.

    das dann mit if(!$fp) abzufragen, ist hier vollkommen an der sache vorbeigezielt.

    der handle wird immer bestehen, wenn der whois-server antwort - ob der jetzt 'frei' oder 'belegt' sagt, erfährst du so nicht im geringsten.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Du musst die Ausgabe von dem was der Whois-Server dir zurückgibt untersuche, was da steht. Also ob da steht das die Domain noch frei ist oder ob du eine Inhaberausgabe bekommst.
      Frage:
      Aus welchen Script hast du dir den teil genommen, vielliecht kann man dir dann besser helfen, wenn man das Original-Script sieht.
      *winks*
      Gilbert
      ------------------------------------------------
      Hilfe für eine Vielzahl von Problemen!!!
      http://www.1st-rootserver.de/

      Kommentar


      • #4
        das script habe ich von zend.com
        hier der link:
        http://zend.com/codex.php?id=170&single=1

        Kommentar


        • #5
          Was ich dir empfehlen kann, ist das Script vom Matt Wilson das Matt's Whois (http://mattsscripts.co.uk/)

          Das läst sich sehr gut als Grundlage verwenden für ein eigenes Whois-Script.

          Oder aber du solltest dir das mal ansehne:
          PHP-Code:
          <?PHP
          header
          ("Cache-Control: no-cache, must-revalidate");
          header("Pragma: no-cache");
          ?>

          <HTML>
          <HEAD>
          <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-8859-1">
          <TITLE>Whois</TITLE>
          </HEAD>
          <BODY BGCOLOR="#ffffff" LINK="#0000ff" ALINK="#0000ff" VLINK="#0000ff">

          <H1>Whois</H1>

          <?PHP

          ////////////////////////////////////////////////////////////////////////////////////////////////
          //                                                                                            //
          //  WHOIS 1.0 - (31.05.2001)                                                                  //
          //                                                                                            //
          //  Dieser Script ist ausschliesslich fuer private Zwecke frei nutzbar und darf nur kostenlos //
          //  weitergegeben werden! Bei kommerzieller Nutzung kontaktieren Sie Bitte den Autor.         //
          //                                                                                            //
          //  Copyright by Andreas Wagner - mailto:mail@awhp.de - [url]http://www.awhp.de/[/url]                   //
          //                                                                                            //
          ////////////////////////////////////////////////////////////////////////////////////////////////

          if (isset($submit)) {

            
          $WhoIsServer "whois.geektools.com";

            if ((empty(
          $domain) == false) && (empty($WhoIsServer) == false)) {

              
          $fps fsockopen ("$WhoIsServer"43$errno$errstr) or die(printf("<P>Sorry, beim Verbindungsaufbau zum Whois-Server ist ein Fehler aufgetreten!</P>\n"));

              
          set_socket_blocking($fps0);

              
          fputs($fps"$domain\n");

              echo 
          "<PRE>\n";

              while (!
          feof($fps)) {

                
          $result fgets($fps2048);

                echo 
          "$result";

              }

              echo 
          "</PRE>\n";
           
              
          fclose($fps); 

            }

            else echo(
          "<P>Sorry, Sie haben vergessen, die zu pr&uuml;fende Domain- oder IP-Adresse einzugeben!</P>\n");

          }

          ?>

          <FORM ACTION="<?PHP echo $PHP_SELF ?>" METHOD=POST><INPUT TYPE="text" NAME="domain" VALUE="" SIZE=30>&nbsp;<INPUT TYPE="submit" NAME="submit" VALUE="Whois?"></FORM>

          <HR>

          <H4>Was ist das?</H4>

          <P ALIGN="justify"><I>Whois</I> oder auch <I>Who is ...?</I> (englisch)
           bzw. <I>Wer ist ...?</I> (deutsch) ist der Name eines Dienstprogramms 
          für das Internet. Es erlaubt die Abfrage von Datenbanken mit 
          Informationen über den Inhaber einer Domain. Die Datenbank enthält 
          unter anderem Angaben über den Betreiber einer Webseite wie dessen 
          Postanschrift, E-Mail-Adresse, Telefon-Nummer und so weiter. Außerdem 
          sind dort die Zuständigen für rechtliche, technische und administrative 
          Probleme mit dem betreffenden Domain-Namen benannt. Mit diesem 
          <I>Whois</I> können Sie aber nicht nur Domains sondern auch IP-
          Adressen abfragen.</P>


          <HR>

          <P>Copyright &copy; by <A HREF="http://www.awhp.de/">awhp.de</A></P>

          </BODY>
          </HTML>
          *winks*
          Gilbert
          ------------------------------------------------
          Hilfe für eine Vielzahl von Problemen!!!
          http://www.1st-rootserver.de/

          Kommentar


          • #6
            das matts whois kenn ich schon.. is mir irgendwie zu.. umfangreich.. is mir einfach zuviel code und hat viel schnickschnack, den ich nich brauche..

            gibt es denn keine möglichkeit, das script so umzuschreiben, dass es nur ausgibt ob die domain frei ist oder nicht? (das von mir gepostete)

            Kommentar


            • #7
              warum änderst du nicht diese script so um, dass du die für dich überflüssigen teile rausschmeisst?
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Du wirst nicht drum herum kommen eine Serverliste zu benutzen. Diese Liste muss Dir sagen, welche TLD welchen Server benutzt, und nach welchem String Du bei der Ausgabe suchen musst, um das Ergebnis zu interpretieren.

                Und Matts Liste ist dafür geeignet. Allerdings ist sie nicht gerade gepflegt.

                Glaub' mir, ich spreche aus Erfahrung.

                Kommentar


                • #9
                  @kutiku:
                  das is nich das problem.. http://zend.com/codex.php?id=170&single=1
                  das komplette script. die server sind gut defniert

                  @wahsaga:
                  welche teile sind überflüssig? ich habe keine ahnung von irgendwelchen domain abfragen. drum habe ich auch einfach das script übernommen...

                  Kommentar


                  • #10
                    Was hst du den jetzt schon versucht und gemacht?
                    *winks*
                    Gilbert
                    ------------------------------------------------
                    Hilfe für eine Vielzahl von Problemen!!!
                    http://www.1st-rootserver.de/

                    Kommentar


                    • #11
                      Du musst die Rückgabe nachfolgende Teilen durchsuchen:
                      No match for
                      No match
                      No Match
                      No information available
                      Domain Not Found
                      nothing found
                      \nAvailable
                      No such domain
                      AVAIL
                      Not found
                      no matching record
                      No data found
                      No entries found
                      not found in our database
                      is not registered
                      No data was found
                      no entries found
                      No domains matched
                      Referencias de Organization No Encontradas
                      not a registered domain
                      NO MATCH for
                      does not exists
                      NOMATCH
                      Not found in database
                      No Records Found
                      Sorry - no
                      NO MATCH
                      No information available
                      not have an entry
                      NOT FOUND
                      % No entries found
                      % There was no match in the IE Domain
                      Not found:
                      not known
                      not registered
                      No match!!
                      no existe
                      does not exist
                      Available


                      So das sollten jetzt alle Möglichkeiten sein zu unterscheiden ob die Domain noch Frei ist.

                      Einfach den Rückgabewert von whois-server dannach durchsuchen und schon kannst du wählen ob die Domain Frei ist oder Belegt.
                      *winks*
                      Gilbert
                      ------------------------------------------------
                      Hilfe für eine Vielzahl von Problemen!!!
                      http://www.1st-rootserver.de/

                      Kommentar


                      • #12
                        danke für den tip wotan. aber irgendwie bin ich immer noch zu blöd

                        ich hab den code jetzt so umgeschrieben:
                        PHP-Code:
                        <?
                                $serv_open = fsockopen("$whois_serv", 43, &$errno, &$errstr, 30);
                                $fp = fputs($serv_open, $domain."\n");
                                if(ereg("No match for", $fp) OR ereg("No match", $fp) OR ereg("No Match
                        ", $fp) OR ereg("No information available", $fp) OR ereg("Domain Not Found", $fp) 
                        OR ereg("nothing found", $fp) OR ereg("\nAvailable", $fp) 
                        OR ereg("No such domain", $fp) OR ereg("AVAIL", $fp) 
                        OR ereg("Not found", $fp) OR ereg("no matching record", $fp) 
                        OR ereg("No data found", $fp) OR ereg("No entries found", $fp) 
                        OR ereg("not found in our database", $fp) OR ereg("is not registered", $fp) OR ereg("No data was found", $fp) OR ereg("no entries found", $fp) 
                        OR ereg("No domains matched", $fp) OR ereg("Referencias de Organization No Encontradas", $fp) OR ereg("not a registered domain", $fp) OR ereg("NO MATCH for", $fp) OR ereg("does not exists", $fp) 
                        OR ereg("NOMATCH", $fp) OR ereg("Not found in database", $fp) 
                        OR ereg("No Records Found", $fp) OR ereg("Sorry - no", $fp) 
                        OR ereg("NO MATCH", $fp) OR ereg("No information available", $fp) 
                        OR ereg("not have an entry", $fp) OR ereg("NOT FOUND", $fp) 
                        OR ereg("% No entries found", $fp) 
                        OR ereg("% There was no match in the IE Domain", $fp) 
                        OR ereg("Not found:", $fp) OR ereg("not known", $fp) 
                        OR ereg("not registered", $fp) OR ereg("No match!!", $fp) OR ereg("no existe", $fp) OR ereg("does not exist", $fp)) 
                                    {
                                    $output = "Frei";
                                    }
                                else
                                    {
                                     $output = "Belegt";
                                    }
                            fclose($serv_open);
                            
                            echo $output;
                        ?>
                        ich weiß, dass die if abfrage schlimm ausschaut.. mir is aber nix eleganteres eingefallen.. es wird immer noch bei jeder domain ausgegeben, dass sie belegt ist..

                        gruß
                        Zuletzt geändert von WhiZZler; 26.07.2003, 12:38.

                        Kommentar


                        • #13
                          *threadnachobenschubbs*
                          mein problem is noch nich gelöst

                          Kommentar

                          Lädt...
                          X