2016-07-21 13 views
1

Ich versuche zu analysieren, diesen Code auszuführen:Fehlgeschlagen Argumente

os.system("""gnome-terminal -e 'bash -c "arpspoof -i " + inter + " -t " + target + " " + gateway" ' """) 

und der Fehler ist:

„Failed Argumente analysieren: Argument zu "--command/-en" ist nicht ein gültiger Befehl: Text wurde beendet, bevor das passende Zitat für "gefunden wurde. (Der Text war ‚bash -c "arpspoof -i" + inter + "-t" + Ziel + "" + Gateway“ ‚)“

Hier ist meine gesamte Code:

import os 
import time 

def drift(): 
    global gateway 
    gateway = raw_input("Gateway IP > ") 
    time.sleep(0.5) 
    global target 
    target = raw_input("Target IP > ") 
    time.sleep(0.5) 
    global inter 
    inter = raw_input("Interface > ") 
drift() 

os.system("""gnome-terminal -e 'bash -c "arpspoof -i " + inter + " -t " + target + " " + gateway" ' """) 

Also für diejenigen, von euch, die nicht wissen, was "Driftnet" ist, es ist ein MITM-Angriffsprogramm, um Bilder aufzunehmen. So legen Sie es auf Sie in einem Terminal eingeben müssen

„arpspoof -i -t“

Dann ein neues Terminal öffnen und die gleichen Typ, aber mit der Reihenfolge der Gateway-IP und Ziel-IP-geschaltet, Trick Ihr Ziel, dass Sie denken, Sie sind ein Router.

Ich möchte mein Programm für die Gateway-IP, Ziel-IP, Schnittstelle fragen, dann laufen „arpspoof -i -t“

Dann ein neues Terminal öffnen und zu und geben Sie die gleiche Sache, außer schalten die Reihenfolge der die Gateway-IP und Ziel-IP, wo das Ziel zuerst und Gateway ist zweite, ohne dass der Benutzer nichts eingeben muss, und ich versuche os.system("""gnome-terminal -e 'bash -c "arpspoof -i " + inter + " -t " + target + " " + gateway" ' """) zu verwenden, aber es gibt den Fehler zurück:

"Fehler beim Parsen Argumente: Argument zu "--command/-e" ist kein gültiger Befehl: Text wurde beendet, bevor passendes Zitat für "gefunden wurde. (Der Text war 'bash -c' arpspoof -i "+ Inter +" -t "+ Ziel +" "+ Gateway" ') "

Danke.

+0

Das erste, was zu tun ist, speichern Sie den Befehl in eine Variable, und überprüfen Sie dann, dass der Befehl genau das ist, was Sie erwarten. –

Antwort

1

Das Problem besteht darin, dass Sie versuchen, Zeichenfolgen in einer dreifachen Zeichenfolge in Anführungszeichen hinzuzufügen. Sie scheinen zu versuchen, den Wert Ihrer Variablen in Ihre dreifache Zeichenfolge in Anführungszeichen zu setzen, aber Sie übergeben tatsächlich die Literalzeichenfolge gnome-terminal -e 'bash -c "arpspoof -i " + inter + " -t " + target + " " + gateway" ' an os.system().

Was Sie tun müssen, ist format verwenden.

os.system("""gnome-terminal -e 'bash -c "arpspoof -i {inter} -t {target} {gateway}" ' """.format(inter=inter, target=target, gateway=gateway)) 
+0

Okay, wenn ich das mache, gibt es diesen Fehler zurück: os.system ("arpspoof -i" + inter + "-t" + Gateway + "" + Ziel) ^ SyntaxError: ungültige Syntax –

+0

Muss ich tun. Format auf das auch? –

+0

Das ist kein Syntaxfehler, es ist wahrscheinlich etwas in der Zeile darüber. Das ist eine neue Frage. –

Verwandte Themen