Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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)

# INPUT IPv4 Address and subnet mask
print("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-ADDRESS
for 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])

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.