Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Есть ли запись на нейм-серверах

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Узнать, припаркован ли конкретный домен на конкретных нейм- серверах
murich
Отправлено: 27 Марта, 2009 - 22:41:41
Post Id



Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Авг. 2007  


Помог: 0 раз(а)




Здравствуйте.
Подскажите, пожалуйста, как узнать, припаркован ли конкретный домен на конкретных нейм- серверах?


-----
Just be a Person
 
 Top
EuGen Администратор
Отправлено: 28 Марта, 2009 - 00:21:21
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




nslookup

?


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
murich
Отправлено: 28 Марта, 2009 - 09:07:22
Post Id



Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Авг. 2007  


Помог: 0 раз(а)




Типа того. Только данные от nslookup еще обработать нужно будит чтобы получить в итоге истину или ложь


-----
Just be a Person
 
 Top
murich
Отправлено: 28 Марта, 2009 - 11:32:32
Post Id



Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Авг. 2007  


Помог: 0 раз(а)




Решение моей задачи.
Итак, мне нужно было проверить, прописан ли домен на нейм-серверах, прежде чем парковать его на них. После ответа от EuGen я погуглил и выяснил, что нужный мне результат можно получить, пользуясь программами nslookup и dig.
Так что из php нужно юзать exec.
Как его юзать я не знал, да и что- то подсказывает мне, что на шаред- хостинге такой возможности просто не будет. А мне нужно
Пришлось пользоваться сторонним сервисом- http://secondary[dot]net[dot]ua/check/

Ну и родился следующий php класс:
PHP:
скопировать код в буфер обмена
  1.  
  2. class is_parked{
  3.         var $ch;
  4.        
  5.         function is_parked(){
  6.                 $this->ch = curl_init();
  7.                 curl_setopt($this->ch, CURLOPT_RETURNTRANSFER, 1);
  8.         curl_setopt($this->ch, CURLOPT_POST, 1);
  9.         curl_setopt($this->ch, CURLOPT_COOKIEJAR, 'cookie.txt');
  10.         curl_setopt($this->ch, CURLOPT_COOKIEFILE, 'cookie.txt');
  11.         curl_setopt($this->ch, CURLOPT_URL, 'http://secondary.net.ua/cgi-bin/noauth/secondary.cgi');
  12.         }
  13.        
  14.         function check($domain, $ns){
  15.         curl_setopt($this->ch, CURLOPT_POSTFIELDS, 'dname='.$domain.'&qserver='.$ns.'&nic-s=2&action=check');
  16.                 $result = curl_exec($this->ch);
  17.                 preg_match('!ANSWER\: (.*), AUTHORITY!', $result, $o);
  18.                 if(is_numeric($o[1]) and $o[1] != 0) return true;
  19.                 elseif(is_numeric($o[1])) return false;
  20.                 else print_r($o);
  21.         }
  22. }
  23. // Usage:
  24. $p = new is_parked();
  25. echo $p->check('domain.com', 'ns1.nameserver.com');
  26.  


Конечно, хотелось бы получить более универсальное решение- может не на всех шаред хостингах не работает exec(). Если кому-то есть что сказать по этому поводу- буду рад прочесть Улыбка


-----
Just be a Person
 
 Top
Гость
Отправлено: 28 Марта, 2009 - 18:39:22
Post Id


УДАЛЁН










murich Да оригинальное решение может пригодиться в будущем
Только вот зачем было делать класс когда достаточно просто функции и вызов происходил бы не двумя строчками а одной и еще в памяти бы не валялось лишнего экземпляра класса Улыбка
 
 Top
murich
Отправлено: 28 Марта, 2009 - 18:51:22
Post Id



Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Авг. 2007  


Помог: 0 раз(а)




Я об этом подумал минуты через 4 после того как запостил. )
Спать видимо хотелось.


-----
Just be a Person
 
 Top
Гость
Отправлено: 29 Марта, 2009 - 12:01:22
Post Id


УДАЛЁН










Кстати было бы еще неплохо написаь функцию вывода всех DNS которые обслуживают данный домен Улыбка
 
 Top
murich
Отправлено: 29 Марта, 2009 - 12:03:26
Post Id



Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Авг. 2007  


Помог: 0 раз(а)




Дерзай Улыбка


-----
Just be a Person
 
 Top
EuGen Администратор
Отправлено: 30 Марта, 2009 - 10:32:41
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




murich пишет:
После ответа от EuGen я погуглил и выяснил

+5
Мое уважение, нечасто тут таких встретишь.
Ну и решение, может, кому пригодится.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Stierus Супермодератор
Отправлено: 30 Марта, 2009 - 11:30:10
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




murich, молодец. Что бы не было желания плодить экземпляры в будущем, решил тебе немного класс переделать, вдруг на мысли какие-нибудь умные, полезные, наведет Улыбка

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. class Domen{
  3.     static private $ch = NULL;
  4.    
  5.     private static function init(){
  6.                 if(is_null(self::$ch)){
  7.                 self::$ch = curl_init();
  8.                 curl_setopt(self::$ch, CURLOPT_RETURNTRANSFER, 1);
  9.                 curl_setopt(self::$ch, CURLOPT_POST, 1);
  10.                 curl_setopt(self::$ch, CURLOPT_COOKIEJAR, 'cookie.txt');
  11.                 curl_setopt(self::$ch, CURLOPT_COOKIEFILE, 'cookie.txt');
  12.                 curl_setopt(self::$ch, CURLOPT_URL, 'http://secondary.net.ua/cgi-bin/noauth/secondary.cgi');
  13.                 }
  14.                 return self::$ch;
  15.                 /*
  16.                 тут можно настроить работу с кэшем и тд
  17.                 */
  18.     }
  19.    
  20.     public static function check($domain, $ns){
  21.                 self::init();
  22.                 $curl = self::$ch;
  23.         curl_setopt($curl, CURLOPT_POSTFIELDS, 'dname='.$domain.'&qserver='.$ns.'&nic-s=2&action=check');
  24.         $result = curl_exec($curl);
  25.         preg_match('!ANSWER\: (.*), AUTHORITY!', $result, $o);
  26.         if(is_numeric($o[1]) and $o[1] != 0) return true;
  27.         elseif(is_numeric($o[1])) return false;
  28.         else print_r($o);
  29.     }
  30. }
  31. // Usage:
  32. $p = Domen::check('domain.com', 'ns1.nameserver.com');
  33. ?>


ps
Ну и за работоспособность не отвечаю, это твой же код, но в статичные функции переведён Улыбка

(Отредактировано автором: 30 Марта, 2009 - 11:31:25)

 
My status
 Top
murich
Отправлено: 30 Марта, 2009 - 16:13:31
Post Id



Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Авг. 2007  


Помог: 0 раз(а)




Пока не наводит на мысли Улыбка Мож потом и наведет.


-----
Just be a Person
 
 Top
Гость
Отправлено: 30 Марта, 2009 - 16:34:48
Post Id


УДАЛЁН










Чтото выражение return self::$ch; наводит на мысли отом что две строчки self::init(); и $curl = self::$ch; можно сделать в одну типа $curl = self::init(); или же подругому вообще убрать return

murich На мысли о рациональном использовании памяти (Щас это смешон для для огромного количетсвпа объектов ощутимо) а также о разумном использовании ООП о чем я вам и говорил ранее

(Отредактировано автором: 30 Марта, 2009 - 16:36:02)

 
 Top
Stierus Супермодератор
Отправлено: 31 Марта, 2009 - 09:46:57
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




JustUserR, $curl = self::init(); в функции ретурн добавил, а в чеке не исправил.
 
My status
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB