def nullak_szama(ip):
    db = 0
    for i in range(len(ip)):
        if ip[i] == "0":
            db += 1
    return db


f = open("ip.txt")
adatok = [x.strip() for x in f.readlines()]
f.close()

print("2. feladat")
print("Az állományban", len(adatok), "darab adatsor van.")

print("3. feladat:")
adatok_sorban = sorted(adatok)
print("A legalacsonyabb tárolt IP-cím:\n" + "".join(adatok_sorban[0]))

print("4. feladat")
tipus = ["2001:0db8", "2001:0e", "fc", "fd"]
dok = glob = helyi = 0
for x in adatok:
    if x[0:9] == tipus[0]:
        dok += 1
    elif x[0:7] == tipus[1]:
        glob += 1
    else:
        helyi += 1
print("Dokumentációs cím: {0} darab\nGlobális egyedi cím: {1} darab\nHelyi egyedi cím: {2} darab".format(dok, glob,
                                                                                                         helyi))
print("5. feladat: a legalább 18 nullát tartalmazó ip címek kigyűjtése")
ki = open("sok.txt", "w")
i = 1
for x in adatok:
    if nullak_szama(x) > 17:
        print(i, x, file=ki)
    i += 1
ki.close()

ssz = int(input("6. feladat:\nKérek egy sorszámot: "))
ipcim = [x for x in adatok][ssz - 1]
ipcim_rovid = ipcim.replace(":0", ":").replace(":0", ":").replace(":0", ":")  # bevezető nullák eltávolítása 3 lépésben
print(ipcim + "\n" + ipcim_rovid)

ipcim_rovid2 = ipcim_rovid + ":"
for i in range(8, 1, -1):
    if ':' + '0:' * i in ipcim_rovid2:
        if i > 3:
            ipcim_rovid2 = ipcim_rovid2.replace(':' + '0:' * i, '::')
        else:
            # innentől kezdve lehet két azonos hosszúságú egység!
            ipcim_rovid2 = ipcim_rovid2.replace(':' + '0:' * i, '::', 1)
# if ipcim_rovid.find(":0:0:0:0:0:0:0:") != -1:
#     ipcim_rovid = ipcim_rovid.replace(":0:0:0:0:0:0:0:", "::")
# elif ipcim_rovid.find(":0:0:0:0:0:0:") != -1:
#     ipcim_rovid = ipcim_rovid.replace(":0:0:0:0:0:0:", "::")
# elif ipcim_rovid.find(":0:0:0:0:0:") != -1:
#     ipcim_rovid = ipcim_rovid.replace(":0:0:0:0:0:", "::")
# elif ipcim_rovid.find(":0:0:0:0:") != -1:
#     ipcim_rovid = ipcim_rovid.replace(":0:0:0:0:", "::")
# # innentől kezdve lehet két azonos hosszúságú egység!
# elif ipcim_rovid.find(":0:0:0:") != -1:
#     ipcim_rovid = ipcim_rovid.replace(":0:0:0:", "::", 1)
# elif ipcim_rovid.find(":0:0:") != -1:
#     ipcim_rovid = ipcim_rovid.replace(":0:0:", "::", 1)
# Ha nem a végét rövidítettük, akkor cím végén van egy felesleges ":", azt levágjuk
if (ipcim_rovid2[-1]) == ":" and ipcim_rovid2[-2] != ":":
    ipcim_rovid2 = ipcim_rovid2.rstrip(":")

print("7.feladat")
if ipcim_rovid2 != ipcim_rovid:
    print(ipcim_rovid2)
else:
    print("Nem rövidíthető tovább")
