Python脚本-使用参数启动nmap

Python脚本-使用参数启动nmap,python,nmap,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(

脚本启动应用程序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...")
请看这里:

拆分程序名和参数,列表中的第一个项目是要运行的程序名

在您的情况下,
subprocess.Popen(command.split(“”))
就足够了

command = "nmap print xIP xOP"
这条线就是问题所在。首先,当命令在集合(如列表)中拆分为多个片段时,as最有效。而不是像他们建议的那样使用
str.split()
,而是为此而设计的,如
Popen
文档中的示例所示

但是,您遇到的另一个问题是,您已经将变量名放入字符串文字中,因此它们只是作为字符串的一部分处理,而不是对其内容进行求值。要获得所需的行为,只需直接引用变量:

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

你做过调试吗?另外,除非绝对必要,否则请不要以图像形式共享信息。请参阅:,。是的,我进行了任何调试,我知道这是命令行=“nmap print xIP xOP”。我确实发布了这些图片来提供额外的信息。