python - 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...")
解决方案
command = "nmap print xIP xOP"
这条线是问题所在。首先,正如Uriya Harpeness 所提到的,subprocess.Popen()
当命令被拆分为像列表这样的集合中的片段时效果最好。正如文档中的示例所示,而不是str.split()
按照他们的建议使用,而是shlex.split()
为此而设计的。Popen
但是,您遇到的另一个问题是您已将变量名称放入字符串文字中,因此它们只是被视为字符串的一部分,而不是对其内容进行评估。要获得您想要的行为,只需直接引用变量:
command = ["nmap", "print", xIP, xOP]
subprocess.Popen(command)
推荐阅读
- python - 这个类的子类的init怎么写?
- javascript - 为什么在触发 window.location.reload 时会清除其余功能代码?
- javascript - Next js 不更新 URL
- json - 在json文件上使用jq过滤器时如何限制缩进
- php - 如何使用php rest api从reactjs前端修复数据库中的空插入?
- flutter - 如何定位 NoSuchMethodError
- c# - 使用 ToolStripControlHost 将 HTML 代码加载到 Windows 窗体工具提示中
- reactjs - 在 Reactjs 中更改 json
- java - Java中密码模式的正则表达式
- javascript - 动态数据处理的Highcharts问题