Autor Zpráva
panterek
Profil
Dle níže vypsaného skriptu výstup sice dostanu, ale je špatně zformátovaný, potřeboval bych si ho rozdělit pod sebe, což by měla udělat funkce explode..jenže výstup je nezformátovaný...proč to? Když do proměnné $up nenapíšu příkaz, ale text, tak to funguje - rozdělí. Jenže s tím příkazem e-e, proč to?

$ip = $_POST['ip_podsit'];
$ips = $_POST['ip_start'];
$ipe = $_POST['ip_end'];

if (isset($_POST['ip'])):

$up = passthru ("nmap -sP $ip.".$ips."-".$ipe."");
$pole=explode("be up", $up);
foreach ($pole as $cast)
{
echo "$cast<br>\n";
}
endif;
Joker
Profil
panterek:
Tip: Pro vložení kódu používejte značku [pre], (tlačítko "<>").

Funkce passthru pošle výstup z programu na výstup a nic nevrací. Funkce explode tedy nic nevrátí (protože nedostane žádný vstup) a to co vidíte je výstup z funkce passthru.
Pravděpodobně chcete místo passthru použít exec
panterek
Profil
Exec jsem právě zkoušel předtím, ale to nefunguje jak má..např v rozmezí IP adres x.x.x.50-100 (testuju tedy 50 IP adres), tak s EXEC mi vyjedou 2 výsledky, s passthru mi jich vyjede podstatně víc - tolik, kolik má. Exec mi tedy nefunguje spolehlivě...nevím ale proč. Nehledě teda na to, že exec mi nevyjel celý výstup, tuším že jen první řádek..
Aesir
Profil
panterek:
V manuálu k funkci exec najdete informaci, že tato funkce vrací pouze poslední řádek výstupu. Zároveň tam naleznete i popis toho, že pokud chcete celý výstup, máte využít druhého parametru této funkce.
panterek
Profil
Já bych ho využil hrozně moc rád, ale............já a pan Johny English si moc netykáme :-) Je tam sice celá syntaxe, ale vzhledem k mým začátkům v PHP to asi nebude úplně ono :-) Každopádně zalaborovat zkusím, díky

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: