Ich versuche, ein Python-Skript auf Linux, die einen 'Whois' Befehl auf jeder verbundenen/verbindenden IP-Adresse, die aus dem 'Netstat' Befehl geparst wird.Python-Linux-Skript (Whois Fehler)
Ich bin eine Fehlermeldung erhalten sagen "sh: 1: Syntaxfehler: Unterminated zitierte Zeichenfolge"
und die Whois Nutzungsmöglichkeiten unter dem geschrieben.
Kann mir jemand erklären, was das Skript falsch ist? Ich glaube, es hat etwas mit der for-Schleife zu tun und mit der Art und Weise, wie es den whois-Befehl ausführt, kann ich einfach keine Lösung finden. Im Folgenden finden Sie das Skript in Frage:
#!/usr/bin/python
from os import system
answer = [system("netstat -alpntu46 |grep 'ESTABLISHED\|SYN_RECV' | awk '{print $5 }' |cut -d: -f1'")]
for i in answer:
system('whois')
EDIT So ist mein ursprüngliches Problem vollständig fixiert, ich bin keine Fehler bekommen. Aber jetzt das ganze Skript tut, ist die IP-Adressen auflisten und darunter, dass sie die whois Verwendungsbeispiele aufgeführt:
-h HOST, --host HOST connect to server HOST
-p PORT, --port PORT connect to PORT
-H hide legal disclaimers
--verbose explain what is being done
--help display this help and exit
--version output version information and exit"
So scheint es, die Antwort variabel ausgeführt werden, aber nicht in der Lage, den whois-Befehl auf jeder Adresse laufen .
Zählen Sie die ' '' s in der Zeile Code. Eine schnelle Möglichkeit, Ihren Code zu überprüfen, wäre, alles zwischen 'system (' '...' ") zu kopieren und zu versuchen, es manuell in einer Shell auszuführen. –
Danke :) Du hast absolut Recht, ich normalerweise alles innerhalb des Systembefehls in einer tatsächlichen Shell ausführen, muss ich den zusätzlichen Apostroph nach dem – vladimir