00-F2 的 IPV6 反解設定

URL Link //n.sfs.tw/12839

2018-10-22 10:18:57 By igogo

 

近日, 強者我的大神同事, line 傳來一句:  igogo  上次你那個ipv6的設定檔 再幫我跑一次 如連結

程式都寫好了, 再跑一次, 那有什麼問題,   ok啦

 

結果根本完全是兩個馬子的事,  再問清楚,  才知道大神要的是什麼 

大神要  這個格式

0.0    NS    dns.chc.edu.tw.
0.0    NS    chcns.tcrc.edu.tw.

1.0    NS    dns.chc.edu.tw.
1.0    NS    chcns.tcrc.edu.tw.

1.F    NS    dns.chc.edu.tw.
1.F    NS    chcns.tcrc.edu.tw.
2.F    NS    dns.chc.edu.tw.
2.F    NS    chcns.tcrc.edu.tw.

 

再仔細問原來大神要的是 16進位  00-F2  

再反轉  

00 -> 00

01 ->10

0A -> A0

EF -> FE

F1 -> 1F

F2 -> 2F

最後再將反轉的字串中間加上.

0.0

1.0

1.F

2.F

 

我只能說大神的跳躍思考, 絕不是我們這种平凡的老百姓可以理解的

好吧 既然我是凡人, 當然就是按理解順序來寫 

 

先跑00,01,到EF,再加上三個F0,F1,F2

import array

first = []
second = []

for i in range(0, 10):
    first.append(i)
    second.append(i)

for i in range(ord('A'), ord('E')+1):
    first.append(chr(i))
    second.append(chr(i))

second.append("F")

digits = []

for i in range(0, len(first)):
    for j in range(0, len(second)):
        digits.append("{}{}".format(first[i], second[j]))

digits.append("F0")
digits.append("F1")
digits.append("F2")

 

 

處理字串

for i in range(0,len(digits)):
    print(digits[i][::-1]) #反轉
    print(".".join(list(digits[i][::-1]))) #反轉中間加上點

 

 

完整程式碼

 

import array

first = []
second = []

for i in range(0, 10):
    first.append(i)
    second.append(i)

for i in range(ord('A'), ord('E')+1):
    first.append(chr(i))
    second.append(chr(i))

second.append("F")

digits = []

for i in range(0, len(first)):
    for j in range(0, len(second)):
        digits.append("{}{}".format(first[i], second[j]))

digits.append("F0")
digits.append("F1")
digits.append("F2")


# for i in range(0,len(digits)):
#         # print(".".join(list(digits[i][::-1])))
#         print(digits[i][::-1])

filename = "chc.txt"
content = ""
for i in range(0, len(digits)):
    prefix = ".".join(list(digits[i][::-1]))
    content += "{}\tNS\tdns.chc.edu.tw.\n".format(prefix)
    content += "{}\tNS\tchcns.tcrc.edu.tw.\n".format(prefix)


with open(filename, "w") as fw:
    fw.write(content)