Quando usar subprocess.call () ou subprocess.Popen (), executando airodump
Eu tenho este pequeno script que coloca o seu dispositivo sem fio no modo monitor. Ele faz uma varredura de airodump e depois de terminar a varredura despeja a saída para file.txt ou uma variável, então eu posso raspar o BSSID e qualquer outra informação que possa precisar.
Eu sinto que não entendi o conceito ou a diferença entresubprocess.call()
esubprocess.Popen()
.
Isto é o que eu tenho atualmente:
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
Eu ainda não sei onde e quando e de que maneira usarsubprocess.call()
esubprocess.Popen()
A coisa que eu acho mais confusa é astdout
estderr
args. O que éPIPE
?
Outra coisa que eu poderia me consertar uma vez que eu entendi melhor é isso:
Quandorunning subprocess.Popen()
e executando o airodump, a janela do console aparece mostrando a varredura. Existe uma maneira de esconder isso do usuário para limpar as coisas?