python – 何时使用subprocess.call()或subprocess.Popen(),运行airodump
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 何时使用subprocess.call()或subprocess.Popen(),运行airodump,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1800字,纯文字阅读大概需要3分钟。
内容图文
![python – 何时使用subprocess.call()或subprocess.Popen(),运行airodump](/upload/InfoBanner/zyjiaocheng/732/dad6819dd8244ae4ae42262f6c9c8eea.jpg)
我有这个小脚本,可以让您的无线设备进入监控模式.它执行airodump扫描,然后在终止扫描后将输出转储到file.txt或变量,这样我就可以刮掉BSSID以及我可能需要的任何其他信息.
我觉得我没有理解subprocess.call()和subprocess.Popen()之间的概念或区别.
这就是我目前拥有的:
def setup_device():
try:
output = open("file.txt", "w")
put_device_down = subprocess.call(["ifconfig", "wlan0", "down"])
put_device_mon = subprocess.call(["iwconfig", "wlan0", "mode", "monitor"])
put_device_up = subprocess.call(["iwconfig", "wlano", "up"])
start_device = subprocess.call(["airmon-ng", "start", "wlan0"])
scanned_networks = subprocess.Popen(["airodump-ng", "wlan0"], stdout = output)
time.sleep(10)
scanned_networks.terminate()
except Exception, e:
print "Error:", e
我仍然对使用subprocess.call()和subprocess.Popen()的方式和时间以及使用方式一无所知
我认为让我最困惑的是stdout和stderr args.什么是PIPE?
一旦我掌握得更好,我可以修复自己的另一件事是:
运行subprocess.Popen()并运行airodump时,会弹出控制台窗口,显示扫描.有没有办法将这个隐藏起来?
解决方法:
如果你不想,你不必使用Popen().模块中的其他函数,例如.call()使用Popen(),为您提供了一个更简单的API来完成您想要的任务.
所有控制台应用程序都有3个’文件’流:stdin用于输入,stdout和stderr用于输出.应用程序决定在哪里写;通常是stderr的错误和诊断信息,其余的是stdout.如果要在Python程序中捕获这些输出中的任何一个的输出,请指定subprocess.PIPE参数,以便将“stream”重定向到您的程序中.由此得名.
如果要捕获airodump-ng wlan0命令的输出,最简单的方法是使用subprocess.check_output()功能;它为您处理PIPE论证:
scanned_networks = subprocess.check_output(["airodump-ng", "wlan0"])
现在输出包含airodump-ng写入其stdout流的任何内容.
如果您需要对进程有更多控制权,那么您需要使用Popen()类:
proc = subprocess.Popen(["airodump-ng", "wlan0"], stdout=subprocess.PIPE)
for line in proc.stdout:
# do something with line
proc.terminate()
内容总结
以上是互联网集市为您收集整理的python – 何时使用subprocess.call()或subprocess.Popen(),运行airodump全部内容,希望文章能够帮你解决python – 何时使用subprocess.call()或subprocess.Popen(),运行airodump所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。