首页 > 解决方案 > Python 脚本 - 使用参数启动 nmap

问题描述

脚本启动应用程序 nmap。只有它不会将 var 打印到应用程序 nmap。但是,如果我单独打印它们。

寻求一些建议,非常感谢。

图像脚本-图像输出

脚本:

import os
import subprocess

xIP=input("Please enter IP-address to use on NMAP port-scan: ")
xOP=input("Please apply options to add on port-scan: ")

print("Entered values: ", xIP + xOP)

command = "nmap print xIP xOP"
#os.system(command)
subprocess.Popen(command)

input("Press ENTER to exit application...")

标签: pythonnmap

解决方案


command = "nmap print xIP xOP"

这条线是问题所在。首先,正如Uriya Harpeness 所提到的,subprocess.Popen()当命令被拆分为像列表这样的集合中的片段时效果最好。正如文档中的示例所示,而不是str.split()按照他们的建议使用,而是shlex.split()为此而设计的。Popen

但是,您遇到的另一个问题是您已将变量名称放入字符串文字中,因此它们只是被视为字符串的一部分,而不是对其内容进行评估。要获得您想要的行为,只需直接引用变量:

command = ["nmap", "print", xIP, xOP]
subprocess.Popen(command)

推荐阅读