ich schreibe gerade just for fun, um den Umgang mit Strings besser zu lernen, einen kleinen Subnetting-Rechner.
Dazu werden eine IPv4-Adresse und eine Subnetzmaske eingegeben. Sie sollen dann bitweise AND-verknüpft und ein Ergebnis ausgegeben werden.
Ich bin erst so weit, dass ich die IP-Adressen/Subnetzmasken als String eingeben kann und der bei den Punkten der IP-Adresse (z.B. 192.168.0.1) gesplittet wird. Das ist ja wichtig für die Berechnung im Anschluss, dass der String nicht als ganzes behandelt wird, sondern in vier einzeln ansprech- und berechenbaren Teilstrings.
Jetzt mache ich mir über die Fehlerbehandlung Gedanken. Eine Idee wäre, einen Fehler auszuspucken, wenn ein Element des Strings größer als 255 ist.
Wie mache ich das in Python?
Muss ich dazu explizit casten?
Merci
Code bisher: (teilweise pseudo)
# INPUT IPv4 Address and subnet maskprint("Please enter IPv4 address (in dotted decimal notation):")
ipaddr = input()print("Please enter IPv4 subnet mask (in dotted decimal notation):")
subnetmask = input()# STRING SPLITTING
bytelistIP = ipaddr.split(".")
bytelistSNM = subnetmask.split(".")# FEHLER ABFANGEN - IP-Adresse: Fehler ausgeben, wenn# ein Element größer als 255 ist:# ein Element kleiner als 0 ist# if bytelistIP[x] < 0: print("Invalid Input: Byte cannot be negative. Enter zero or a positive number.")# die Länge der Strings jeweils größer als 12 plus drei Punkte ist# if len(bytelistIP) > 15: print("Invalid Input: Address is too long. Enter a valid address.")# die Länge der Strings jeweils kleiner als 4 plus drei Punkte ist# if len(bytelistIP) < 7: print("Invalid Input: Address is too short. Enter a valid address.")# ein String mehr oder weniger als drei Punkte enthält# numberOfDots = find(".") -> if numberOfDots is not 3: print("Invalid Input: An IPv4 address needs three dots. No more, no less.")# Stellen zwischen Punkten leer sind# if bytelistIP[x] is NULL: print("Invalid Input: Byte is empty. Enter a valid number.")# Zahlen oder Sonderzeichen eingegeben wurden# FEHLER ABFANGEN - SUBNETZMASKE: Fehler ausgeben, wenn zusätzlich zu den Fehlern der IP-Adresse# ein Element größer ist als das vorherige Element# BITWISE OPERATION to calculate subnets#kommt noch # FOR TEST USES ONLY: OUTPUT OF ELEMENTS#IP-ADDRESSfor i in range(0,4):print("Element:", i, bytelistIP[i])
x = int(bytelistIP[i])if x >255:print("error")print("*********************************")#SUBNET MASK for j in range (0,4):print("Element:", j, bytelistSNM[j])
Frage
jk86
Moin,
ich schreibe gerade just for fun, um den Umgang mit Strings besser zu lernen, einen kleinen Subnetting-Rechner.
Dazu werden eine IPv4-Adresse und eine Subnetzmaske eingegeben. Sie sollen dann bitweise AND-verknüpft und ein Ergebnis ausgegeben werden.
Ich bin erst so weit, dass ich die IP-Adressen/Subnetzmasken als String eingeben kann und der bei den Punkten der IP-Adresse (z.B. 192.168.0.1) gesplittet wird. Das ist ja wichtig für die Berechnung im Anschluss, dass der String nicht als ganzes behandelt wird, sondern in vier einzeln ansprech- und berechenbaren Teilstrings.
Jetzt mache ich mir über die Fehlerbehandlung Gedanken. Eine Idee wäre, einen Fehler auszuspucken, wenn ein Element des Strings größer als 255 ist.
Wie mache ich das in Python?
Muss ich dazu explizit casten?
Merci
Code bisher: (teilweise pseudo)
Link zu diesem Kommentar
Auf anderen Seiten teilen
3 Antworten auf diese Frage
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.