2012-05-18 26 views
0

我有一個檢查域名可用性的腳本。該腳本不適用於.gr,我不知道爲什麼。這是腳本:域名可用性

<?php 
set_time_limit(0); 
ob_start(); 

$extensions = array(
    '.com'  => array('whois.crsnic.net','No match for'), 
    '.gr'  => array('whois.ripe.net','No entries found'), 
    '.net'  => array('whois.crsnic.net','No match for'), 
    '.co.uk' => array('whois.nic.uk','No match'), 
    '.edu'  => array('whois.internic.net', 'No match for'), 
); 
if(isset($_GET['domain'])) 
{ 
    $domain = str_replace(array('www.', 'http://'), NULL, $_GET['domain']); 

    if(strlen($domain) > 0) 
    { 
     foreach($extensions as $extension => $who) 
     { 
      $buffer = NULL; 

      $sock = fsockopen($who[0], 43) or die('Σφάλμα σύνδεσης με τον διακομιστή:' . $server); 
      fputs($sock, $domain.$extension . "\r\n"); 

       while(!feof($sock)) 
       { 
        $buffer .= fgets($sock,128); 
       } 

      fclose($sock); 

      if(eregi($who[1], $buffer)) 
      { 
       echo '<h4 class="available"><span>Διαθέσιμo</span>' . $domain. '<b>' . $extension .'</b> είναι διαθέσιμο</h4>'; 
      } 
      else 
      { 
       echo '<h4 class="taken"><span>Μη Διαθέσιμo</span>' . $domain . '<b>' .$extension .'</b> δεν είναι διαθέσιμο</h4>'; 
      } 
      echo '<br />'; 

      ob_flush(); 
      flush(); 
      sleep(0.3); 

     } 
    } 
    else 
    { 
     echo 'Παρακαλώ εισάγετε ένα Domain Name'; 
    } 
} 
?> 

和HTML:

<html> 
<head> 
<script type="text/javascript" src="jquery-1.2.6.min.js"></script> 
<script language="javascript"> 
$(document).ready(function() { 

    var loading; 
    var results; 

    form = document.getElementById('form'); 
    loading = document.getElementById('loading'); 
    results = document.getElementById('results'); 

    $('#Submit').click(function() { 

     if($('#Search').val() == "") 
     {alert('Παρακαλώ Εισάγετε Ένα Όνομα');return false;} 

     results.style.display = 'none'; 
     $('#results').html(''); 
     loading.style.display = 'inline'; 

     $.post('process.php?domain=' + escape($('#Search').val()),{ 
     }, function(response){ 

      results.style.display = 'block'; 
      $('#results').html(unescape(response)); 
      loading.style.display = 'none'; 
     }); 

     return false; 
    }); 

}); 
</script> 
</head> 
<body> 
<center> 
    <div id="Heading">Ευρεση Domain</div> 
     <form method="post" action="./" id="form"> 
      <input type="text" autocomplete="on" id="Search" name="domain"> 
      <input type="submit" id="Submit" value="Submit"> 
     </form> 
     <div id="loading"> 
      <img src="load.gif"></img> 
     </div> 
      <div id="results" style="width:400px;" align="center"></div> 
</center>   
</body> 
</html> 

在.gr我認爲這是沒有找到的條目「不起作用。任何線索? 感謝您的回答。

+1

不是一個答案,但它不會傷害到使用jQuery的最新版本。 –

+0

是的。從2008年5月28日起使用jQuery版本有什麼特定的原因嗎? –

+0

沒有理由,我只是在我的磁盤中有這個版本的jQuery。 –

回答

0

它實際上似乎與您的代碼有關,或者至少使用我的測試它。

我更換

if(eregi($who[1], $buffer)) 

if(strpos($buffer, $who[1]) !== false) 

我的服務器抱怨eregi是貶值,但與strpos代替它的時候,它工作得很好。

Not available stackoverflow.com 
Available stackoverflow.gr 
Not available stackoverflow.net 
Not available stackoverflow.co.uk 
Available stackoverflow.edu 

使用

<?php 
    set_time_limit(0); 
    ob_start(); 

    $extensions = array(
     '.com'  => array('whois.crsnic.net','No match for'), 
     '.gr'  => array('whois.ripe.net','No entries found'), 
     '.net'  => array('whois.crsnic.net','No match for'), 
     '.co.uk' => array('whois.nic.uk','No match'), 
     '.edu'  => array('whois.internic.net', 'No match for'), 
    ); 
    if(isset($_GET['domain'])) 
    { 
     $domain = str_replace(array('www.', 'http://'), NULL, $_GET['domain']); 

     if(strlen($domain) > 0) 
     { 
      foreach($extensions as $extension => $who) 
      { 
       $buffer = NULL; 

       $sock = fsockopen($who[0], 43) or die('Σφάλμα σύνδεσης με τον διακομιστή:' . $server); 
       fputs($sock, $domain.$extension . "\r\n"); 

        while(!feof($sock)) 
        { 
         $buffer .= fgets($sock,128); 
        } 

       fclose($sock); 

       if(strpos($buffer, $who[1]) !== false) 
       { 
        echo '<h4 class="available"><span>Available </span>' . $domain. '<b>' . $extension .'</b></h4>'; 
       } 
       else 
       { 
        echo '<h4 class="taken"><span>Not available </span>' . $domain . '<b>' .$extension .'</b></h4>'; 
       } 
       echo '<br />'; 

       ob_flush(); 
       flush(); 
       sleep(0.3); 

      } 
     } 
     else 
     { 
      echo 'Παρακαλώ εισάγετε ένα Domain Name'; 
     } 
    } 
?> 
+0

謝謝你的回答,但它不起作用。嘗試把谷歌爲您的測試,你會看到google.gr錯誤似乎可用。 –

+0

whois.ripe.net在報告時報告'%ERROR:101:找不到條目「。進一步研究,.GR域名只能通過https://grweb.ics.forth.gr/Whois?lang=en這是一個captcha安全的網頁表單進行檢查。因此,您目前無法查看.GR域是否可用。 – Gavin