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]   

> Без описания
OverNik
Отправлено: 16 Июня, 2013 - 11:46:03
Post Id



Частый гость


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


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




Добрый день.
У меня на работе есть много компьютеров, все они ограничены локальной политикой, а именно там нету доступа в интернет. Он есть, но кто тебе его даст, ведь дай работнику интернет - попрощайся с его эффективностью. Но сейчас не об этом.

Интернета нету но есть почта. И тут меня осенило.
Идея моя заключается в том что бы на свой домашний электронный ящик посылать нужный мне URL странички. В ответ я должен получить скачанный сервером сайт + все изображения + css + javascript's.

Погуглил и понял, что буду работать через imap

Пишу код:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. //connect
  4. $imap = imap_open('{imap.gmail.com:993/imap/ssl}INBOX', 'LOGIN@gmail.com', 'PASSWORD') or die(imap_last_error());
  5.  
  6. $numMessages = imap_num_msg($imap);
  7. for ($i = $numMessages; $i > ($numMessages - 20); $i--) {
  8.     $header = imap_header($imap, $i);
  9.  
  10.     $fromInfo = $header->from[0];
  11.     $replyInfo = $header->reply_to[0];
  12.  
  13.     $details = array(
  14.         "fromAddr" => (isset($fromInfo->mailbox) && isset($fromInfo->host))
  15.             ? $fromInfo->mailbox . "@" . $fromInfo->host : "",
  16.         "fromName" => (isset($fromInfo->personal))
  17.             ? $fromInfo->personal : "",
  18.         "replyAddr" => (isset($replyInfo->mailbox) && isset($replyInfo->host))
  19.             ? $replyInfo->mailbox . "@" . $replyInfo->host : "",
  20.         "replyName" => (isset($replyTo->personal))
  21.             ? $replyto->personal : "",
  22.         "subject" => (isset($header->subject))
  23.             ? $header->subject : "",
  24.         "udate" => (isset($header->udate))
  25.             ? $header->udate : ""
  26.     );
  27.  
  28.     $uid = imap_uid($imap, $i);
  29.     //$email = $details["fromAddr"];
  30.     //$thema =  $details["subject"];
  31.    
  32.     if($details["subject"] == "test1"){
  33.  
  34.         $text = imap_fetchbody($imap, $uid, 1, FT_UID);
  35.         /**/
  36.        
  37.    
  38.              system("sh 1.sh $text");
  39.  
  40.  
  41.         /**/
  42.  
  43.     }
  44. }
  45.  
  46.  
  47. imap_close($imap);
  48. ?>
  49.  

1.sh:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. wget -c -t0 -p -E ./ $1
  3.  


Суть скрипта проста: Проверяем почту, видим что есть нужная нам "тема" письма, сейчас это test1, если такое письмо есть скрипт загружает его Body и берет с него URL, после передает этот URL в баш скрипт, где внутри скрипта wget скачивает нужную нам страничку.
В скрипте URL находится в переменой $text. Если сделать echo $text; то в теории и практике как бы должно показать на экран URL который пришел с письмом, все так и есть. Показывает!
Но если передать $text в bash скрипт то нечего не происходит! Даже если сделать вот так:

Тоже нечего!

А вот так работает:
PHP:
скопировать код в буфер обмена
  1.  
  2. $url = "http://php.su";
  3. system("sh 1.sh $url");
  4.  

Работать будет.

Даже будет работать так:



В общем, не могу понять что и как. Гугл не помог. Ведь по сути в $text находится string данные.

(Отредактировано автором: 16 Июня, 2013 - 11:54:19)

 
 Top
dubasua
Отправлено: 16 Июня, 2013 - 11:56:32
Post Id



Посетитель


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


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






Вот это хак!!! Изумительный обход сис админов, которые инет прячут.
 
 Top
LIME
Отправлено: 16 Июня, 2013 - 12:01:08
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




OverNik пишет:
Ведь по сути в $text находится string данные.
а какие? проверял?
http://phpfaq[dot]ru/debug
 
 Top
OverNik
Отправлено: 16 Июня, 2013 - 12:25:08
Post Id



Частый гость


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


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




Конечно проверял. URL данные.
Если есть у кого возможно проверить на своем сервере код на работоспособность замените
PHP:
скопировать код в буфер обмена
  1.  
  2. /**/
  3.              system("sh 1.sh $text");
  4. /**/
  5.  

на
PHP:
скопировать код в буфер обмена
  1.  
  2. /**/
  3.              echo file_get_contents($text);
  4. /**/
  5.  


У меня итог - пустота. Хотя если сделать
PHP:
скопировать код в буфер обмена
  1.  
  2. /**/
  3.              echo $text;
  4.              echo file_get_contents($text);
  5. /**/
  6.  

Выдаст только URL'ы. Сервер Ubuntu 13.04, LAMP + установленныt пакеты для imap
 
 Top
LIME
Отправлено: 16 Июня, 2013 - 12:37:32
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




 
 Top
OverNik
Отправлено: 16 Июня, 2013 - 12:55:48
Post Id



Частый гость


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


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




сURL тоже пустота.
 
 Top
DeepVarvar Супермодератор
Отправлено: 16 Июня, 2013 - 13:00:30
Post Id



Активный участник


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


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




OverNik, а к чему гемор с почтой? Все порты закрыты чтоли?
Например 22, 21, 20, от 49152 и до 65534 ?
Попробуй с работы дернуть свою удаленную машинку:
CODE (bash):
скопировать код в буфер обмена
  1. ~$ telnet hostmane portnumber
 
 Top
OverNik
Отправлено: 16 Июня, 2013 - 13:05:59
Post Id



Частый гость


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


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




Вот в том и проблема. Что бы подключится к сети нужно приконектится к VPN серверу который стоит в главном офисе. Логин и пароль VPN не кто просто так не даст, должность не позволяет Недовольство, огорчение
Было бы все так просто, я бы на сервере настроил VPN и через него кушал трафик
(Добавление)
А почта работает по microsoft exchange server
(Добавление)
Кажись понял куда копать - кодировка письма.
Так как если делаю так:
PHP:
скопировать код в буфер обмена
  1.  
  2. // $text = "TESTDIR";
  3. var_dump($text);
  4. mkdir($text);
  5. #system("sh 1.sh $text1");
  6.  

То создает каталог: TZ8LNA~7
 
 Top
OverNik
Отправлено: 16 Июня, 2013 - 20:26:19
Post Id



Частый гость


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


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




Вот сие чудо, которое не давало правильно выполнить скрипт
PHP:
скопировать код в буфер обмена
  1.  
  2.  $text = str_replace("\r", "", $text);
  3.  $text = str_replace("\n", "", $text);
  4.  


Всем спасибо Ха-ха
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с сетью »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB