Ich habe das Internet auf der Suche nach der Antwort auf diese Suche. Bitte nicht meine Python Coding-Fähigkeiten sind nicht so toll. Ich versuche, ein Kommandozeilen-Skript zu erstellen, die die Eingabe von der Befehlszeile wie folgt statt:Python - Wie nehme ich die Eingabe von der Befehlszeile und pipe es in socket.gethostbyaddr ("")
$python GetHostID.py serverName.com
der letzte Teil ist das, was ich bin zu wollen als Variable weitergeben socket.gethostbyaddr („“) Modul. Das ist der Code, den ich bisher habe. kann jemand mir helfen, herauszufinden, wie man diese Variable in den ("") steckt. Ich denke, dass das "" Probleme mit der Verwendung eines einfachen Variablennamens verursacht, da es versucht, es als eine Textzeichenfolge wie einem Variablennamen zu behandeln. hier ist der Code, den ich in meinem Skript haben:
#!/bin/python
#
import sys, os
import optparse
import socket
remoteServer = input("Enter a remote host to scan: ")
remoteServerIP = socket.gethostbyaddr(remoteServer)
socket.gethostbyaddr('remoteServer')[0]
os.getenv('remoteServer')
print (remoteServerIP)
jede Hilfe willkommen wäre. Ich habe mein Gehirn über diese ... Dank
Warum müssen Sie 'remoteServer' in Anführungszeichen setzen? – zwol
Wenn ich es ohne die Anführungszeichen mache, scheint es zu einem Fehler zu kommen. Datei "C: \ Bin \ Skripte \ PyTools \ tiniGetHost.py", Zeile 10, in socket.gethostbyaddr ('remoteServer') [0] socket.gaierror: [Errno 11004] getaddrinfo fehlgeschlagen –
betzelel
ich entfernte die Anführungszeichen, es lief erfolgreich in der Python-Shell, aber wenn ich es unter der Bash-Shell ausführe, scheint es nicht zu bemerken, dass ich den Servernamen hinzugefügt habe, und dann Fehler aus ... ➤ python tiniGetHost.py serverName Geben Sie einen Remote-Host zum Scannen ein : serverName # musste den richtigen Namen für die Buchung nehmen ... # Traceback (letzter Anruf zuletzt): Datei "tiniGetHost.py", Zeile 8, in remoteServer = Eingabe ("Geben Sie einen entfernten Host zum Scannen ein: ") Datei" ", Zeile 1, in N ameError: Name 'Serv' ist nicht definiert –
betzelel