Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Скрипт, определяющий занят домен или нет
 
 автор: Kicher   (06.04.2007 в 16:05)   письмо автору
 
 

есть у вас такой замечательный скрипт....
а как его можно переделать что бы проверялось но вводя не название и зону (пример: site.ru) а только название (пример: site) а зону для проверки выбираешь галочками?
таким образом чтобы он проверял все выбранные зоны? (пример: .ru, .org...)
зоны которые находятся в массиве..
спасибо..

   
 
 автор: XPraptor   (06.04.2007 в 16:11)   письмо автору
 
   для: Kicher   (06.04.2007 в 16:05)
 

Так создай чекбоксы с зонами и подставляй отмеченные циклом в скрипт, дописывая к имени. Но только учти, что whois сервис ограничение по времени для запросов извне ведет, и можно бана получить. Вот если ты заплатишь им, то будешь без ограничений проверять.

   
 
 автор: Kicher   (09.04.2007 в 12:38)   письмо автору
 
   для: XPraptor   (06.04.2007 в 16:11)
 

что то не пойму...
помогите пожалуйста!

я его немного переделал.
сделал 3 файла:
массив доменов:

<?
$servers 
= array(

    array(
"aero","whois.information.aero","is available"),

    array(
"biz","whois.biz","Not found"),

    array(
"com","whois.verisign-grs.net","No match"),

    array(
"com.ru","whois.ripn.ru","No entries found"),

    array(
"edu","whois.verisign-grs.net","No match"),

    array(
"info","whois.afilias.info","Not found"),

    array(
"name","whois.nic.name","No match"),

    array(
"net","whois.verisign-grs.net","No match"),

    array(
"no","whois.norid.no","no matches"),

    array(
"org","whois.ripn.net","No match"),
        
//array("org","whois.verisign-grs.net","No match"),

    
array("org.ru","whois.ripn.ru","No entries found"),

    array(
"ru","whois.ripn.ru","No entries found"),

    array(
"tv","whois.tv","MAXCHARS:75"),
  );
?>

сама форма

<? include "array_domen_1.php"?>
<FORM action=/service/internet/whois/result.php method=post>
<?
for($i 0$i count($servers); $i++)
  {
    
      
$whois $servers[$i][1];?>
       <input type="checkbox" name = "domain_zone" value="1"><?
       
echo "Зона: ",$servers[$i][0],"<br>";
      
$not_found_string $servers[$i][2];
   
  }
?>

<INPUT class = "inputtext" type=text name=domen_name size=35>
<input class = "inputbuttonflat" type=submit value='Проверить'>

скрипт проверки

<?php 
  
// Устанавливаем не ограниченное время выполнения скрипта
  
set_time_limit(0);
  
//подключаем спикок серверов
  
include "array_domen_1.php";

  
$domen_name $_POST["domen_name"];
  
$domain_zone $_POST["domain_zone"];
  
$domain $domen_name.$domain_zone;
  
echo 
$domain ," - домен <br>";
  echo 
$domain_zone ,"- зона <br>";
  echo 
$domen_name ,"- имя <br>";
  
// Извлекаем домен первого уровня

  
$first_dom substr($domainstrpos($domain".") + 1);

  
// Получаем имя whois-сервера, который отвечает за

  // домен $first_dom
  
for($i 0$i count($servers); $i++)
  {
    if(
$servers[$i][0] == $first_dom)
    {
      
// Запоминаем имя сервера
      
$whois $servers[$i][1];
      
// и фразу, означающую, что домен отсутствует
      
$not_found_string $servers[$i][2];
      
// Покидаем цикл
      
break;
    }
  }
  
// Проверяем определён ли whois-сервер который несёт
  // ответственность за данный доменный уровень
  
if(empty($whois)) exit("К сожалению не найден соответствующий Whois-сервер");
  
// Обращаемся к whois-серверу и получаем информацию
  // о доменном имени
  
$fp fsockopen($whois43);
  
fputs($fp"$domain\r\n");
  
$str "";
  while(!
feof($fp))
  {
    
$str .= fgets($fp,128);
  }
  
fclose($fp);
  
// если в ответе имеется фраза-отказ, домен не
  // зарегистрирован, если такой фразы нет -
 // следовательно домен зарегистрирован
  
if(!preg_match("/".$not_found_string."/is"$str))
  {
    
//echo "<b>",$_POST["ip"],"</b>";
    
echo "Домен <b>",$_POST["ip"],"</b> уже зарегистрирован";
  }
  else
  {
    echo 
"Домен <b>",$_POST["ip"],"</b> не зарегистрирован";
  }
?>


но не получается даже передать из формы массив в скрипт..
может кто видит где ошибка?

   
 
 автор: t3ma   (09.04.2007 в 13:22)   письмо автору
 
   для: Kicher   (09.04.2007 в 12:38)
 

незнаю...но вот мой скрипт который работает.


function WhoisQuery($server="whois.ripn.net", $query)
{
        $sp=fsockopen($server, 43);
        if(!$sp)
        {
                echo "Не удалось подключиться к сервису Whois!"; return 0;
        }

/* Отправляем запрос */

       fputs($sp, $query."\r\n");

       while(!feof($sp)) {

/* Читаем в переменную $data данные цугами по 1 Кб */

       $data .= fread($sp, 1024);
       }

       fclose($sp);

       return $data;



   
 
 автор: Kicher   (09.04.2007 в 15:05)   письмо автору
 
   для: t3ma   (09.04.2007 в 13:22)
 

тут дело не в этом..
у меня не получается передать данные из формы скрипту обработчику...

   
 
 автор: Kicher   (11.04.2007 в 11:27)   письмо автору
 
   для: Kicher   (09.04.2007 в 15:05)
 

что то я ваще запутался...

   
 
 автор: Kicher   (11.04.2007 в 13:49)   письмо автору
 
   для: Kicher   (11.04.2007 в 11:27)
 

может кто знает где можно взять рабочий скрипт в котором задаешь название сайта и выбираешь зоны которые нужно проверить...
а то что то у меня не получается переделать...
(((

   
 
 автор: Kicher   (11.04.2007 в 17:01)   письмо автору
 
   для: Kicher   (11.04.2007 в 13:49)
 

вот что получилось почти....
сама форма

<FORM METHOD="post" ACTION="wc_handler_array.php">
<table>
<tr>
  <td><input type="checkbox" name="exercise[0]" value="1">&nbsp;ru</td>
</tr>
<tr>
  <td><input type="checkbox" name="exercise[1]" value="1">&nbsp;com</td>
</tr>
<tr>
  <td><input type="text" name="names">&nbsp;name</td>
</tr>
<tr>
  <td><input type="submit" name="submit" value="Burn, baby, burn!"></td>

</TR>
</TABLE>
</FORM>


скрипт

<?php
$zone_name_array 
= array(
                    
=> 'ru',
                    
=> 'com'
                  
);

$ripn_domen_array = array(
                    
=> 'whois.ripn.ru',
                    
=> 'whois.verisign-grs.net'
                  
);

if (
is_array($_POST) && count($_POST) > 1) {
  
$message '';
  
$name=$_POST["names"];
  
//echo $name;
  
foreach ($_POST['exercise'] as $key => $val) {
    if (
$val == 1) {
      
$zone_name $zone_name_array[$key];
      
$ripn_domen $ripn_domen_array[$key];
     
     echo 
"$ripn_domen для зоны $zone_name<br>";
     
$adress"$name.$zone_name";
        echo 
$adress,"<br>";
        
        
$fp fsockopen($ripn_domen43);
          
fputs($fp"$adress\r\n");
          
$str "";
          while(!
feof($fp))
          {
            
$str .= fgets($fp,128);
          }
          
fclose($fp);
          
// если в ответе имеется фраза-отказ, домен не
          // зарегистрирован, если такой фразы нет -
          // следовательно домен зарегистрирован
          
if(!preg_match("/".$not_found_string."/is"$str))
          {
            echo 
"Домен уже зарегистрирован <br><br>";
          }
          else
          {
            echo 
"Домен не зарегистрирован<br><br>";
          }
            }
  }
}
else {
   echo 
"не выбрали зону";


?>


блин тока он выдает всегда что Домен не зарегистрирован....
люди добрые помогите плз!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования