最近想写个自动化工具。因为想要配合oneforall 所以 必须将收集到的域名处理成顶级域名。其实是想自己写的,可真是写起来才知道还是比较难处理的。于是想着网上找找看有没有前辈写好的,找到个靠谱的小脚本,已经忘了具体出处了
path=r'xxxxx' #当前路径
readfilename="indomain.txt"
writefilename="outdomain.txt"
alldomainend=(".com", ".cn", ".com.cn", ".gov", ".net", ".edu.cn", ".net.cn", ".org.cn", ".co.jp", ".gov.cn",
".co.uk", "ac.cn", ".edu", ".tv",".info", ".ac", ".ag", ".am", ".at", ".be", ".biz", ".bz",
".cc", ".de", ".es", ".eu", ".fm", ".gs", ".hk", ".in", ".info", ".io", ".it", ".jp", ".la",
".md", ".ms", ".name", ".nl", ".nu", ".org", ".pl", ".ru", ".sc", ".se", ".sg", ".sh", ".tc",
".tk", ".tv", ".tw", ".us", ".co",".uk", ".vc", ".vg", ".ws", ".il", ".li", ".nz" )
#倒叙输出字符串
def string_reverse(m):
num = len(m)
a = []
for i in range(num):
a.append(m[num - 1 - i]) # 从最后一位的元素开始往新list内添加元素
return a
def checkTopDomain(pDomain):
tmpDomain="".join(pDomain)
for i in alldomainend:
if i==tmpDomain:
return True
return False
def GetTopDomain(pDomain):
tmpDomain=pDomain.decode()
reversestr=string_reverse(tmpDomain)
n = len(reversestr)
i = 0
tmpbuf=''
for i in range(n):
if reversestr[i] !='.':
if reversestr[i] !='/':
tmpbuf+=reversestr[i]
#print( tmpbuf)
else:
rebuf = string_reverse(tmpbuf)
#print(rebuf)
return (rebuf)
else:
tmpbuf+='.'
rebuf=string_reverse(tmpbuf)
if checkTopDomain(rebuf) ==False:
#print(rebuf[1:])
return rebuf[1:]
return list(tmpDomain)
print("GetTopDomain start")
rfile=open(path+readfilename,'rb')
wfile=open(path+writefilename,'a')
line=rfile.readline()
while line:
nline = line.split( )
rDomain=nline[0]
strreturn="".join(GetTopDomain(rDomain))
#print(type(strreturn))
wfile.writelines(strreturn)
wfile.write('\n')
line = rfile.readline()
print("GetTopDomain end")
rfile.close()
wfile.close()