Python :: Aufgabe #57 :: Lösung #1

2 Lösungen Lösungen öffentlich
#57

IPv6 Adresse überprüfen

Anfänger - Python von pocki - 26.11.2014 um 12:03 Uhr
Schreibe eine Funktion, welche eine Zeichenfolge entgegen nimmt und diese auf eine gültige IPv6 Adresse prüft.
Ohne Verwendung der internen vorhandenen Überprüfungsfunktionen!

IPv6 Adressnotation Wikipedia
#1
vote_ok
von ah3n0bar6us (660 Punkte) - 19.07.2016 um 17:17 Uhr
Eine Lösung für vollständig ausgeschriebene IPv6 Adressen und gefilterten Kurzschreibweisen.

Quellcode ausblenden Python-Code
#!/usr/bin/env python3
def ipv6Check():
    """ check if input is a valid ipv6 """
    stdAdd = ["::1"]			# add futher ddresses if needed
    ipv6Value = input("Please enter address: ")
    ipv6Len = len(ipv6Value)

    if ipv6Len >= 3 and ipv6Len <= 39:
    	#check further
    	if ipv6Value in stdAdd:
    		print("Address is valid. ")
    	else:
    		# chek max 4 chars to get ":"
    		checkPosStart = 0
    		while checkPosStart <= ipv6Len:
    			try: 
    				if ipv6Value[checkPosStart+4] == ":":
    					for i in range(0,4):		
    						if checkChars(ipv6Value[checkPosStart+i]) == False:
    							print("A unvalid char detected. IPv6 fail.",ipv6Value[checkPosStart+i])
    							exit()
    			except IndexError:
    				pass
    			checkPosStart += 4
    else:
    	print("Not a valid ipv6 address")

def checkChars(char):
	validChars = ["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"]
	if char in validChars:
		return True
	else:
		return False

def main():
	ipv6Check()

if __name__ == "__main__":
    main()

Kommentare:

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

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