如何在PHP exec中使用Nmap

霍恩

我想从PHP调用Nmap。

如果我这样做:

exec('nmap', $output);
var_dump( $output );

它起作用了,我得到了经典的“ Nmap的用法”文本。

但是一旦我尝试运行UDP检查

exec('nmap -p 586 -sU xx.xx.xx.xx', $output);
var_dump( $output );

它不再工作,没有输出。

我想念什么?

问候

丹尼尔·W。

重要提示: NMAP对于Web服务器用户(Apache,www-data等)不完全起作用NMAP只能 root做所有事情。

我会用popen()

$stream = popen('/usr/bin/nmap -p 586 -sU xx.xx.xx.xx', 'r');

while (!feof($stream)) {
    //Make sure you use semicolon at the end of command
    $buffer = fread($stream, 1024);
    echo $buffer, PHP_EOL;
}

pclose($stream);

还是值得尝试:

// Start output buffering
ob_start();
// Flush COMPLETE output of nmap
fpassthru('/usr/bin/nmap -p 586 -sU xx.xx.xx.xx');
// Capture output buffer contents
$output = ob_get_contents();
// Shutdown output buffers
ob_end_clean();

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章