Strona 1 z 1

Pobieranie wyników z netcat przez PHP

: 23 lipca 2008, 21:13
autor: robson_ek
Witam,

Jestem informatykiem z zamiłowania i szkoły (PK Inf 2 rok). Mam ciekawy problem, który wydaje się być bardzo prosty do rozwiązania, ale niestety w moim przypadku tak nie jest.

Zadanie:
Napisać skrypt w PHP pobierający dane z programu nc.

Rozwiązanie:
Z pomocą przychodzi nam funkcja PHP shell_exec, która może wyświetlać wyniki,które widzimy w bashu łącząc się przez SSH.

Przykładowy kod:

Kod: Zaznacz cały

<?php
$output = shell_exec('nc -v -z linux.pl 80');
echo "<pre>$output</pre>";
?>
Problem:
funkcja shell_exec nie zwraca żadnych wyników dla programu nc. Natomiast jeżeli jako komendę wpisze listowanie plików: (shell_exec('ls -lart') ;) to na ekranie bardzo ładnie ukaże się zawartość katalogu.

Moje pytanie:
Dlaczego u mnie nie chce się nic pokazać, jeżeli listowanie plików działa i kilka innych komend. Nawet ping po skróceniu jego działania (np.: -c 4) ładnie wyświetla się na stronie.

Moja walka:
Próbowałem zapisywać plik po przez (>) nawet na kilku powłokach (2>&1) i niestety nic nie było zwracane.
Jeżeli natomiast wpiszę te same dane w bashu to wszystko ładnie chodzi, plik jest zapisywany i zawiera treść.

Moja maszyna:
Serwer w OVH kimstufii XXL wraz z panelem Direct Admin.

Proszę o pomoc bo nie mam pojęcia co może być przyczyną.

Jeżeli brakuje jakichś informacji proszę pisać a na pewno je zamieszczę i każdą propozycje rozwiązania problemu przetestuje.

: 25 lipca 2008, 21:30
autor: jedi1

Kod: Zaznacz cały

<?php
$output = shell_exec('nc -v -z linux.pl 80 2>&1');
echo "$output";
?>
dziala u mnie na php5

: 26 lipca 2008, 12:09
autor: Czocher
A czy www wraz z php nie może działać w środowisku chroot? Może poprostu takie zabezpieczenie mają...