Ankündigung

Einklappen
Keine Ankündigung bisher.

Domaincheck - Umlaute (Punycode-Verfahren?)

Einklappen

Neue Werbung 2019

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

  • Domaincheck - Umlaute (Punycode-Verfahren?)

    Morgen,

    ich habe ein Domaincheck geschrieben:
    PHP-Code:
    <?php if(preg_match('/\Ahttps?:\/\/([-\w\.]+)+(:\d+)?(\/([\w\/_\.]*(\?\S+)?)?)?\Z/''http://'.$_POST['domain'])) // URL auf validität überprüfen. 

      
    $whois=array(); // Array initialisieren. Es folgen Deklarationen des mehrdimensionalem Arrays. 
      
    $whois['.de']['server']='whois.denic.de'
      
    $whois['.de']['string']='Status:      free'
      
    $whois['.com']['server']='whois.crsnic.net'
      
    $whois['.com']['string']='No match for'
      
    $whois['.net']['server']='whois.crsnic.net'
      
    $whois['.net']['string']='No match for'
      
    $whois['.org']['server']='whois.publicinterestregistry.net'
      
    $whois['.org']['string']='NOT FOUND'
      
    $whois['.info']['server']='whois.afilias.net'
      
    $whois['.info']['string']='NOT FOUND'
      
    $whois['.biz']['server']='whois.nic.biz'
      
    $whois['.biz']['string']='Not found'
      
    $whois['.ag']['server']='whois.nic.ag'
      
    $whois['.ag']['string']='NOT FOUND'
      
    $whois['.am']['server']='whois.nic.am'
      
    $whois['.am']['string']='No match'
      
    $whois['.as']['server']='whois.nic.as'
      
    $whois['.as']['string']='Domain Not Found'
      
    $whois['.at']['server']='whois.nic.at'
      
    $whois['.at']['string']='nothing found'
      
    $whois['.be']['server']='whois.dns.be'
      
    $whois['.be']['string']='Status:      FREE'
      
    $whois['.cd']['server']='whois.cd'
      
    $whois['.cd']['string']='No match'
      
    $whois['.ch']['server']='whois.nic.ch'
      
    $whois['.ch']['string']='not have an entry'
      
    $whois['.cx']['server']='whois.nic.cx'
      
    $whois['.cx']['string']='Status: Not Registered'
      
    $whois['.dk']['server']='whois.dk-hostmaster.dk'
      
    $whois['.dk']['string']='No entries found'
      
    $whois['.it']['server']='whois.nic.it'
      
    $whois['.it']['string']='Status: AVAILABLE'
      
    $whois['.li']['server']='whois.nic.li'
      
    $whois['.li']['string']='do not have an entry'
      
    $whois['.lu']['server']='whois.dns.lu'
      
    $whois['.lu']['string']='No such domain'
      
    $whois['.nu']['server']='whois.nic.nu'
      
    $whois['.nu']['string']='NO MATCH for'
      
    $whois['.ru']['server']='whois.ripn.net'
      
    $whois['.ru']['string']='No entries found'
      
    $whois['.uk.com']['server']='whois.centralnic.com'
      
    $whois['.uk.com']['string']='No match for'
      
    $whois['.eu.com']['server']='whois.centralnic.com'
      
    $whois['.eu.com']['string']='No match'
      
    $whois['.ws']['server']='whois.nic.ws'
      
    $whois['.ws']['string']='No match for'

      
    $domain=str_replace('www.'''$_POST['domain']); // Solche Dinge sind Detailssache (..)  Letztlich muss die Anfrage an den WHOIS-Server ohne http::// , www. usw. stattfinden. -> Nur Domainname und Domainendung. 

      
    if(get_magic_quotes_gpc==0
      { 
        
    $domain=addslashes($domain); 
      } 

    // Verbindung zum whois server aufbauen / Status der Domain erfragen. 

     
    $check=fsockopen($whois[$_POST['tld']]['server'], 43); 
      
    fputs($check$domain.$_POST['tld']."\r\n"); 
      while(!
    feof($check))  
      { 
        
    $report=$report.fgets($check128); 
      } 
      
    fclose($check); 
       
      if(
    ereg($whois[$_POST['tld']]['string'], $report)) // Was soll geschehen, wenn domain noch frei ist? 
      

        print(
    'domain frei.'); 
      } 
      else 
    // Was, wenn nicht? 
      

        print(
    'domain nicht frei.'); 
      } 

    ?>
    Das Skript an sich funktioniert sehr gut, nur leider ist es damit nicht möglich , Domains mit Umlauten abzufragen, da diese nicht umformatiert werden. (Punycode-Verfahren?)
    Denic:
    Wie funktionieren die Umlaut-Domains technisch?

    Rein technisch gesehen handelt es sich bei allen Umlaut-Domains um eine speziell codierte Domain-Version. Das so genannte Punycode-Verfahren konvertiert dabei Umlaut-Domains wie börse.de weltweit einheitlich in die ASCII-Form xn--brse-5qa.de und macht sie so für alle gängigen Browser problemlos lesbar. Kennzeichnend für eine Codierung nach dem Punycode-Verfahren ist das Präfix "xn--" am Beginn jeder Umlaut-Domain. Nur Domains mit diesem Präfix gewährleisten eine weltweit unkomplizierte Nutzung in Übereinstimmung mit den geltenden Standards.
    Wie kann ich nun diese Umformatierung bewerkstelligen?

    Danke für eure Hilfe!

  • #2
    Zuerst würde ich dir das Hintergrundwissen RFC 3492 - Punycode: A Bootstring encoding of Unicode for Internationalized Domain Names in Applications (IDNA) ans Herz legen, damit du im Detail verstehst wie die Umwandlung bzw. Validierung funktionieren sollte.

    Damit du jetzt aber nicht das Rad neu erfinden musst gibt es noch PEAR :: Package :: Net_IDNA

    Grüße
    pacey

    Kommentar


    • #3
      Ich danke

      Kommentar


      • #4
        So,

        nun habe ich hab auch die Zeit gefunden, es einzurichten.
        Ein neues Problem habe ich nun; und zwar bekomme ich vom WHOIS-Server

        'Domain: xn--brse-5qa.de Status: invalid'.

        zurück (www.börse.de), obwohl es damit ja gehen müsste?

        Was habe ich falsch gemacht?
        Danke

        Kommentar

        Lädt...
        X