Python :: Aufgabe #101 :: Lösung #3

3 Lösungen Lösungen öffentlich
#101

Ermitteln der IP-Klasse

Anfänger - Python von Energy - 09.03.2016 um 14:48 Uhr
Schreibe ein Programm, was nach einer IP-Adresse fragt. Anschließend soll die IP-Klasse ermittelt und ausgegeben werden.
#3
vote_ok
von Peter... (160 Punkte) - 19.08.2016 um 17:57 Uhr
Hier meine Lösung. Es wurde Python 3 genutzt.
Habe ich die IP-Klasse als Netzklasse richtig verstanden?
https://de.wikipedia.org/wiki/Netzklasse
Quellcode ausblenden Python-Code
def Abfrage(x, adress_part, Adresse):
	if x[0] <= adress_part <= x[1]:
		print('\nDie Adresse', Adresse, 'ist in der Netzklasse', x[2]+'.')
		
		
Adresse = input('Bitte geben Sie eine IP-Adresse der Form n.n.n.n ein:\n')
parts = Adresse.split('.')

#Die folgende if-Abfrage und Schleife dient zur Abfangung falscher Eingaben
try:
	if Adresse.count('.') != 3:
		raise SyntaxError()
	for i in parts:
		if int(i) > 255:
			raise SyntaxError()

#Dieser Teil ermittelt anhand des ersten Teils der Adresse die Klasse
	adress_part = int(Adresse[0:Adresse.index('.')])
	tupel = ((0, 127, 'A'), (128, 191, 'B'), (192, 223, 'C'), (224, 239, 'D'), (240, 255, 'E'))
	for j in tupel:
		Abfrage(j, adress_part, Adresse)
except:
	print('\nSie haben eine falsche Eingabe getätigt!\nDie Adresse darf nur aus Zahlen bestehen\nund muss durch drei "." aufgespalten sein!\n Z.B. 203.0.113.195' )
	
#Mir ist bewusst, dass es auch die unten stehende Möglichkeit gibt, die zudem performanter ist, als die obere, aber ich wollte das Ganze etwas verkürzen.
	
# if 0 =< adress_part <= 127:
	# print('\nDie Adresse', Adresse, 'ist in der Netzklasse A.')
# elif 128 =< adress_part <= 191:
	# print('\nDie Adresse', Adresse, 'ist in der Netzklasse B.')
# elif 192 =< adress_part <= 223:
	# print('\nDie Adresse', Adresse, 'ist in der Netzklasse C.')
# elif 224 =< adress_part <= 239:
	# print('\nDie Adresse', Adresse, 'ist in der Netzklasse D.')
# elif 240 =< adress_part <= 255:
	# print('\nDie Adresse', Adresse, 'ist in der Netzklasse E.')

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben