Python 脚本 - 使用参数启动 nmap
Python script - launch nmap with parameters
脚本启动应用程序 nmap。只是它不会将 var 打印到应用程序 nmap。但是,如果我单独打印它们,它会。
正在寻找一些建议,非常感谢。
Image script - Image output
脚本:
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...")
看这里:https://docs.python.org/3/library/subprocess.html#subprocess.Popen
拆分程序名和参数,它期望列表中的第一项是要运行的程序名。
对于您的情况,subprocess.Popen(command.split(' '))
可能就足够了。
command = "nmap print xIP xOP"
这一行就是问题所在。首先,, subprocess.Popen()
works best when the command is split into pieces in a collection like a list. Instead of using str.split()
as they suggest, shlex.split()
是为此而设计的,如 Popen
文档中的示例所示。
但是,您遇到的另一个问题是您已将变量名放入字符串文字中,因此它们只是被视为字符串的一部分,而不是根据其内容进行评估。要获得您想要的行为,只需直接引用变量:
command = ["nmap", "print", xIP, xOP]
subprocess.Popen(command)
脚本启动应用程序 nmap。只是它不会将 var 打印到应用程序 nmap。但是,如果我单独打印它们,它会。
正在寻找一些建议,非常感谢。
Image script - Image output
脚本:
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...")
看这里:https://docs.python.org/3/library/subprocess.html#subprocess.Popen
拆分程序名和参数,它期望列表中的第一项是要运行的程序名。
对于您的情况,subprocess.Popen(command.split(' '))
可能就足够了。
command = "nmap print xIP xOP"
这一行就是问题所在。首先,subprocess.Popen()
works best when the command is split into pieces in a collection like a list. Instead of using str.split()
as they suggest, shlex.split()
是为此而设计的,如 Popen
文档中的示例所示。
但是,您遇到的另一个问题是您已将变量名放入字符串文字中,因此它们只是被视为字符串的一部分,而不是根据其内容进行评估。要获得您想要的行为,只需直接引用变量:
command = ["nmap", "print", xIP, xOP]
subprocess.Popen(command)