【问题标题】:Python script - launch nmap with parametersPython 脚本 - 使用参数启动 nmap
【发布时间】:2020-09-28 20:27:35
【问题描述】:

脚本启动应用程序 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...")

【问题讨论】:

标签: python nmap


【解决方案1】:
command = "nmap print xIP xOP"

这一行是问题所在。首先,与Uriya Harpeness mentioned 一样,subprocess.Popen() 在将命令拆分为列表等集合中的片段时效果最佳。正如Popen 文档中的示例所示,shlex.split() 不是像他们建议的那样使用 str.split(),而是为此而设计的。

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

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

【讨论】:

    【解决方案2】:

    请看这里:https://docs.python.org/3/library/subprocess.html#subprocess.Popen

    拆分程序名称和参数,它期望的列表中的第一项是要运行的程序的名称。

    在您的情况下,subprocess.Popen(command.split(' ')) 可能就足够了。

    【讨论】:

      猜你喜欢
      • 2018-05-02
      • 2013-06-26
      • 2012-11-04
      • 1970-01-01
      • 2018-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多