我的守则:
#!/usr/bin/python
## test communicate()
# Import the module
import subprocess
# Ask the user for input
host = raw_input("Enter a host to map: ")
# Set up the echo command and direct the output to a pipe
p1 = subprocess.Popen(['nmap', '-T0', '-F', host], stdout=subprocess.PIPE)
# Run the command
output = p1.communicate()[0]
print output当我进入主机时,它不会给我任何输出,而且我可以看到多个nmap实例在进程中以不同的PID运行,因此它实际上执行命令。
当我Z^时,它说: n+1+已停止./sample.py,所以nmap实际上运行了n+1时间,而没有打印任何输出。
对于ping和traceroute来说,它工作得非常好:
# Set up the echo command and direct the output to a pipe
p1 = subprocess.Popen(['ping', '-c 2', host], stdout=subprocess.PIPE)
p1 = subprocess.Popen(['traceroute', host], stdout=subprocess.PIPE)它也没有nmap选项,比如nmap google.com。
p1 = subprocess.Popen(['nmap', host], stdout=subprocess.PIPE)我的问题是:
它与Python或NMap有关吗?这个代码有什么问题吗?还是我遗漏了什么?
发布于 2014-11-17 13:07:02
来自文献资料
T0的主要效果是序列化扫描,一次只扫描一个端口,并在发送每个探针之间等待5分钟。
-F参数意味着“只扫描100个端口”,但在探针之间的5分钟内,这是至少8小时零20分钟的,仅用于端口扫描阶段。这是假设这些探测没有一个被丢弃和重新传输,并且目标对所有这些都有响应。
在绝大多数情况下,-T3 (默认)是很好的。与快速连接,而不是吨的目标,-T4甚至是可靠的。除非您的目标是主动检测和阻止扫描,否则-T2将是您需要执行的最慢的。
https://stackoverflow.com/questions/26965188
复制相似问题