我想从PHP调用Nmap。
如果我这样做:
exec('nmap', $output);
var_dump( $output );
它起作用了,我得到了经典的“ Nmap的用法”文本。
但是一旦我尝试运行UDP检查
exec('nmap -p 586 -sU xx.xx.xx.xx', $output);
var_dump( $output );
它不再工作,没有输出。
我想念什么?
问候
重要提示: 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] 删除。
我来说两句