LinuxForum.Fans
Тема

Написать небольшой проект на PHP

Автор: UTe11ok 6 сообщений 2866 просмотров
#23193

Всем привет!

Мне нужна помощь php-программистов. Сам я специализируюсь на другом, и с web-программингом дел не имел, но вот появилась задача, которую надо решить именно на php, и я... взываю к помощи wink

Описание задачи:
Запрос на произвольный компьютер (указывается IP). Этот запрос должен создать соединение (через ssh) с процессом (например ls -la), прочитать вывод этого процесса и передать обратно серверу.

you --> web_server --> any_PC (запускается "ls -la", считывается вывод, передается web_серверу).

В качестве параметра, который я передаю серверу, должен быть только IP удаленной машины. Подразумевается, что процесс, который я запускаю на машине всегда один и тот же (может быть зашит в код).
Оганичений на вывод не должно быть, т.е. считывать столько, сколько запущенный процесс передаст.

Можно обсуждать прям тут или пишите в личку.

С уважением,
Alex

#23202

а можно мне предложить вам реализовать это на SSI?
плюсы - не нужно вызывать сторонний интерпретатор, для апача это кажется просто расширение.

#23206

Да, в этом-то и проблема, что надо реализовать все это на php :(
"Обходными способами" у меня тоже есть мысли как сделать можно, но тут нужно решение именно на php.

#23266

надо чтоб был установлен модуль ssh2, код взят с другого ресурса, кое что подправил, по идее должен работать, но проверить мне негде )

text
<?php
$host = "site.ru";
$user = "user";
$pass = "password";
$command="ls";

if (!function_exists("ssh2_connect")) die("function ssh2_connect doesn't exist");

if(!($con = ssh2_connect($host, 22))){ echo "unable to connect\n"; } else { if(!ssh2_auth_password($con, $user, $pass)) { echo "unable to auth\n"; } else { echo "logged in!\n"; if (!$stream = ssh2_exec($con, $command)){ die ("ne pashet"); }else{ stream_set_blocking($stream, true); $data = ""; while($o = fgets($stream)){ $data .= $o; } fclose($stream); } } } echo $data; ?>

возможно еще понадобиться и модуль OpenSSL )

#23271

Спасибо, я сегодня же протестирую


----------


Не, не пашет :( Ищу ошибку.

Кстати, а откуда код?

#25872

А что именно

UTe11ok написал:

не пашет

?

Включите показ ошибок в браузере и расскажите. Попробуем помочь.

Войдите или зарегистрируйтесь, чтобы ответить.