golang 自更新DDNS脚本
一、首先你得从https://www.dnsdynamic.org/ 去注册一个帐号,并申请一个二级域名
二、代码
packagemain import( "fmt" "io/IoUtil" "net/http" "strings" "time" ) //Myipinfo typeIpInfostruct{ IpAddstring IsUpdatebool GetTimetime.Time } varMYIP[1]*IpInfo funcgetMyIp(urlsstring)string{ myip:="" reqest,err:=http.Get(urls) iferr==nil{ deferreqest.Body.Close() b,_:=IoUtil.ReadAll(reqest.Body) returnstring(b) } returnmyip } funccheckIP(newIPstring){ ifnewIP!=MYIP[0].IpAdd{ MYIP[0].IpAdd=newIP MYIP[0].IsUpdate=false MYIP[0].GetTime=time.Now() } if!MYIP[0].IsUpdate{ updateIP() } } funcupdateIP(){ url:=fmt.Sprintf("%s%s","https://xxxx@xxxx.com:xxxx@www.dnsdynamic.org/api/?hostname=xxxx.dnsget.org&myip=",MYIP[0].IpAdd) reqest,err:=http.Get(url) iferr!=nil{ return } deferreqest.Body.Close() b,_:=IoUtil.ReadAll(reqest.Body) spiltB:=strings.Split(string(b),"") ifspiltB[0]=="good"{ MYIP[0].IsUpdate=true } } funcmain(){ //Initialization MYIP[0]=new(IpInfo) for{ newIP:=getMyIp("http://myip.dnsdynamic.org") checkIP(newIP) time.Sleep(300*time.Second) } }
三、说明 :将代码中的xxxx更换为你在DNSdynamic网站上的信息,即可
四、运行,每五分钟检查一下IP是否有变化,哈哈!你们自个儿玩去吧