zurück negative Ergebnisse in Schleife
Ich habe Probleme, das genaue Problem in meinem Code zu lokalisieren. Ich habe zwei Funktionen -inrange()
, das prüft, ob ein Port in Reichweite ist, undfilt()
, das eine txt-Datei annimmt, sucht nach den Schlüsselwörtern "UDP" oder "TCP", überprüft den Port (direkt nach dem: -Zeichen) und prüft, ob diese Nummer innerhalb des Bereichs liegt oder nicht.
def inrange(file,character, num):
with open(file, 'r') as r:
for lines in r:
for key, value in sshd.items():
if character == key and character in lines:
if num in sshd.get(character):
return True
else:
return False
elif character == key and character in lines:
if num in sshd.get(character):
return True
else:
return False
Dies ist speziell für sshd.
def filt(file):
with open(file, 'r') as r:
for i, line in enumerate(r):
if "sshd" in line:
plusOne = i + 1
newline = line.strip()
splitIt = newline[7:22]
my_string = splitIt.split(":", 1)[1]
if inrange(file, "TCP", int(my_string)):
print("Line " + str(plusOne) + " is in range" + " " + my_string)
elif inrange(file, "UDP", int(my_string)):
print("Line " + str(plusOne) + " is in range" + " " + my_string)
else:
print("Not in range")
Jetzt funktioniert das, wenn ich das als meine Textdatei habe-
Aktive Verbindungen
Proto Local Address Foreign Address State PID
UDP 0.0.0.0:123 0.0.0.0:0 LISTENING 5987 sshd
ie Sie sehen können, befindet sich UDP 123 in Reichweite, wenn Sie sich das Wörterbuch ansehesshd
über. Als Gegenleistung bekomme ich eine echte Aussage. Wenn ich UDP in TCP ändere, erhalte ich eine negative Aussage zurück. Das funktioniert. Das Problem tritt auf, wenn mehr als eine Zeile hinzugefügt wird.
Active Connections
Proto Local Address Foreign Address State PID
UDP 0.0.0.0:123 0.0.0.0:0 LISTENING 5987 sshd
TCP 0.0.0.0:123 0.0.0.0:0 LISTENING 5987 sshd
UDP 0.0.0.0:123 0.0.0.0:0 LISTENING 5987 sshd
TCP 0.0.0.0:123 0.0.0.0:0 LISTENING 5987 sshd
Ich erhalte alle positiven Ergebnisse zurück:
Line 5 is in range 123
Line 6 is in range 123
Line 7 is in range 123
Line 8 is in range 123
, was nicht der Fall sein sollte, da Zeile 6 und Zeile 8 TCPs in Port 123 sind, der sich nicht in Reichweite befindet. Ich habe das Gefühl, hier fehlt mir etwas Klares. Kann es nicht herausfinden.