"""
2014. május: IPv6
@author Klemand66
"""

print("\n1. feladat\n")

betxt = open("ip.txt")

cimek=[]
for sor in betxt:
    cimek.append(sor.strip())

betxt.close()
print("A beolvasás és a szövegfájl lezárása sikeresen befejeződött.")



print("\n2. feladat\n")

print(f'Az állományban {len(cimek)} darab IPv6 cím van.')



print("\n3. feladat\n")

print(f'A legalacsonyabb tárolt IP-cím: {min(cimek)}')

                 

print("\n4. feladat\n")

dok=list(filter(lambda cim: cim[:9]=="2001:0db8",cimek))
glob=list(filter(lambda cim: cim[:7]=="2001:0e",cimek))
helyi=list(filter(lambda cim: cim[:2]=="fc" or cim[:2]=="fd",cimek))

print(f'Dokumentációs cím: {len(dok)} darab')
print(f'Globális egyedi cím: {len(glob)} darab')
print(f'Helyi egyedi cím: {len(helyi)} darab')



print("\n5. feladat\n")


kitxt = open("sok.txt","w")

for i,cim in enumerate(cimek):
    if cim.count("0")>=18:
        kitxt.write(f'{i+1} {cim}\n')

kitxt.close()
print("A kiíratás és a szövegfájl lezárása sikeresen befejeződött.")



print("\n6. feladat\n")

ssz=int(input("Kérek egy sorszámot (1<= sorszám <= {len(cimek)} "))
cim=cimek[ssz-1]
print(cim)
csoportok=cim.split(":")

for i,csoport in enumerate(csoportok):
    csoport=csoport.lstrip("0")
    # lstrip("k") csak bal oldalról távolítja el a k karaktert, amíg mást nem talál
    if csoport=="": # ha mindegyik 0 volt, egyet vissza kell tenni
        csoport="0"
    csoportok[i]=csoport
    
print(":".join(csoportok))



print("\n7. feladat\n")

aktkezdet, akthossz, maxkezdet, maxhossz = None, 0, None, 0

for i,csoport in enumerate(csoportok):
    if csoport=="0":
        if aktkezdet==None:
            aktkezdet=i
        akthossz+=1
        if akthossz> maxhossz:
            maxkezdet=aktkezdet
            maxhossz=akthossz
    else:
        aktkezdet=None
        akthossz=0

if maxhossz>1:
    ujcim=":".join(csoportok[:maxkezdet])+ "::" +":".join(csoportok[maxkezdet+maxhossz:])
    print(ujcim)
else:
    print("Nem rövidíthető tovább.")


input("\nA befejezéshez nyomd meg az ENTER billentyűt!")
