我有这个小脚本,可以将您的无线设备置于监控模式。它执行 airodump 扫描,然后在终止扫描后将输出转储到 file.txt 或变量,这样我就可以抓取 BSSID 以及我可能需要的任何其他信息。
我觉得我还没有理解两者之间的概念或区别subprocess.call()
and 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()
and subprocess.Popen()
我认为最让我困惑的是stdout
and stderr
参数。什么是PIPE
?
一旦我更好地掌握了,我可以自己解决的另一件事是:
When running subprocess.Popen()
运行 airodump,会弹出控制台窗口,显示扫描结果。有没有办法向用户隐藏此内容以进行清理?