ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Whois. Ответ сервера
  #1  
Старый 24.03.2009, 21:53
dimash
Познающий
Регистрация: 14.04.2008
Сообщений: 78
Провел на форуме:
41875

Репутация: 4
Post Whois. Ответ сервера

Добрый день,
Урывок рабочего кода:
PHP код:
$fp fsockopen($whois43);

  
fputs($fp"$domain\r\n");

  
$str "";

  while(!
feof($fp))

  {

    
$str .= fgets($fp,128);
    
$buffer fgets($fp1024);
    [
B]echo "{$buffer}";[/B]

  }

  
fclose($fp); 
Вопрос №1.
Почему, если я снимаю строку кода echo "{$buffer}"; с предыдущего кода и встравляю ее в продолжение далее:
PHP код:
// если в ответе имеется фраза-отказ, домен не

  // зарегистрирован, если такой фразы нет -

  // следовательно домен зарегистрирован

  
if(!preg_match("/".$not_found_string."/is"$str)) {
    echo 
"Домен зайнятий";
   [
B}print $buffer;[/B]
      }
  else {
    echo 
"Домен вільний <br/>";
    }[/
SIZE
то ответ на выводится?

Вопрос №2.
Я получаю ответ сервера в виде строки
Цитата:
% Rights restricted by copyright. % It has been obtained by querying a remote server: % domain: site.net.ua tech-c: TROL-UANIC nserver: ns1.spam.net.ua changed: hostmaster@megapol.net.ua 20081030
Как ее сделать более читабильной. Хотя бы пока речь не идет о полной информации, а только о ентерах, например посмотрите "http://imena.ua/whois.php?domain=domenforum.com.ua".

Whois, проверка доменов.
 
Ответить с цитированием

  #2  
Старый 24.03.2009, 22:10
neval
Moderator - Level 7
Регистрация: 13.12.2006
Сообщений: 531
Провел на форуме:
2127116

Репутация: 383


По умолчанию

Для начала осмотреть каким образом отдает результат команда whois
Затем немного подумав добавить < /br>
А только после этого понять ,что в первом случае в цикле выводит построчно результат чтения, а во втором он что должен вывести?
 
Ответить с цитированием

  #3  
Старый 24.03.2009, 22:10
Sharky
Познавший АНТИЧАТ
Регистрация: 01.05.2006
Сообщений: 1,021
Провел на форуме:
3424739

Репутация: 921


Отправить сообщение для Sharky с помощью ICQ
По умолчанию

подозреваю по поводу первого, что....
PHP код:
$fp fsockopen($whois43); 

  
fputs($fp"$domain\r\n"); 

  
$str ""

  while(!
feof($fp)) 

  { 

    
$str .= fgets($fp,128); 
    
$buffer fgets($fp1024); 
    
$buffer str_replace("\r\n""<br>"$buffer);
    [
B]echo "{$buffer}";[/B

  } 

  
fclose($fp); 
 
Ответить с цитированием

  #4  
Старый 24.03.2009, 23:36
dimash
Познающий
Регистрация: 14.04.2008
Сообщений: 78
Провел на форуме:
41875

Репутация: 4
По умолчанию

Да, я нашел. Спасибо. Это правильно.
Остается вопрос номер II.
Я повторю смысл.
Whois, проверка домена
Добрый день,
Урывок чернового варианта:
PHP код:
$fp fsockopen($whois43);

  
fputs($fp"$domain\r\n");

  
$str "";

  while(!
feof($fp))

  {

    
$str .= fgets($fp,128);
    
$buffer fgets($fp1024);
    [
B]echo "{$buffer}";[/B]

  }

  
fclose($fp); 
Вопрос. Почему, если я снимаю строку echo "{$buffer}"; и встравляю в продолжение, за циклом:
PHP код:
  if(!preg_match("/".$not_found_string."/is"$str)) {
    echo 
"Домен зайнятий";
   [
B}print $buffer;[/B]
      }
  else {
    echo 
"Домен вільний <br/>";
    } 
ответ сервера на выводится?
 
Ответить с цитированием

  #5  
Старый 24.03.2009, 23:37
dimash
Познающий
Регистрация: 14.04.2008
Сообщений: 78
Провел на форуме:
41875

Репутация: 4
По умолчанию

Цитата:
Сообщение от neval  
А только после этого понять ,что в первом случае в цикле выводит построчно результат чтения, а во втором он что должен вывести?
Как же? Я записал в буфер строку ответа.
 
Ответить с цитированием

  #6  
Старый 25.03.2009, 00:43
neval
Moderator - Level 7
Регистрация: 13.12.2006
Сообщений: 531
Провел на форуме:
2127116

Репутация: 383


По умолчанию

Цитата:
Сообщение от dimash  
Как же? Я записал в буфер строку ответа.
У тебя в цикле в переменную $buffer заносятся строки, полученые fgets
Соответственно, по завершению цикла в переменной $buffer будет последнее полученое значение. В твоем случае это пустая строка.

Исправь

PHP код:
while(!feof($fp))

  {

    
$str .= fgets($fp,128);
    
$buffer fgets($fp1024);
    [
B]echo "{$buffer}";[/B]

  } 
на

PHP код:
while(!feof($fp))

  {

    
$str .= fgets($fp,128);
    
$buffer[] = fgets($fp1024);
    
print_r($buffer);

  } 
и ты увидишь в чем твоя ошибка

Последний раз редактировалось neval; 25.03.2009 в 00:47..
 
Ответить с цитированием

  #7  
Старый 25.03.2009, 01:08
dimash
Познающий
Регистрация: 14.04.2008
Сообщений: 78
Провел на форуме:
41875

Репутация: 4
По умолчанию

решил строкой,спасибо.
 
Ответить с цитированием

  #8  
Старый 25.03.2009, 01:12
neval
Moderator - Level 7
Регистрация: 13.12.2006
Сообщений: 531
Провел на форуме:
2127116

Репутация: 383


По умолчанию

Наверное лучше было бы через массив и foreach
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
V20: Абузостойкие выделенные сервера и хостинг. Реальное качество v20host Хостинг, Dedicated, VDS, Сервера - Покупка, продажа 20 16.06.2009 03:07
Proxy FAQ foreva Чужие Статьи 12 04.01.2008 12:15
Коды состояния HTTP - Коды ошибок http сервера D=P=CH= MOD= *nix 6 15.10.2006 20:47



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ