我正在使用 NMAP 在主机上进行端口扫描。当我在终端上运行以下命令时,大多数情况下它会在一分钟内给出结果。
$ nmap -p 1-65535 10.180.5.237 | awk --posix '{ if ($1 ~ /^[0-9]/) print $0+0}'
22
80
2404
但是如果我使用运行相同的命令系统()在 C 程序中调用它需要不确定的时间,我说它是不确定的,因为我给出了超过 7 分钟但没有输出,所以停止了该过程。
if ((system("nmap -p 1-65535 10.180.5.237 | awk --posix '{ if ($1 ~ /^[0-9]/) print $0+0}' > file_openPorts")) == -1) {
fprintf(stderr, "ERROR : NMAP port scan error...\n");
return 1;
}
为什么会这样,有什么解决办法吗?