alors voici mes tests :
<?
exec('nmap -sP IP/24 -oN /tmp/nmap248.log', $out, $ret);
?>
resultat : un log avec que des lignes Host
<?
exec('nmap -sP IP/24 -oN /tmp/nmap248.log > /tmp/nmap248.tmp', $out, $ret);
?>
resultat : un log avec que des lignes Host, et un tmp identique au log
alors qu'en console :
# nmap -sP IP/24
resultat pour chaque machine trouvée :
Host [@IP] appears to be up.
MAC Address: [@MAC] (type machine)
Je precise aussi que le '2>&1' ne change rien, quelque soit le exec() ci-dessus, de même si je supprime le $out et le $ret.
Donc Shiva pour répondre à ta question, je m'attendais à ce que une commande shell exécutée par un exec() de Php renvoie le même résultat que si elle était exécutée sur une console. Voilà ce que je trouve d'illogique. Ya surement une soluce mais je la trouve pas grrr