golang 自更新DDNS指令碼

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

golang 自更新DDNS指令碼

一、首先你得從https://www.dnsdynamic.org/ 去註冊一個帳號,並申請一個次層網域

二、代碼

package mainimport ("fmt""io/ioutil""net/http""strings""time")//My ip infotype IpInfo struct {IpAdd    stringIsUpdate boolGetTime  time.Time}var MYIP [1]*IpInfofunc getMyIp(urls string) string {myip := ""reqest, err := http.Get(urls)if err == nil {defer reqest.Body.Close()b, _ := ioutil.ReadAll(reqest.Body)return string(b)}return myip}func checkIP(newIP string) {if newIP != MYIP[0].IpAdd {MYIP[0].IpAdd = newIPMYIP[0].IsUpdate = falseMYIP[0].GetTime = time.Now()}if !MYIP[0].IsUpdate {updateIP()}}func updateIP() {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)if err != nil {return}defer reqest.Body.Close()b, _ := ioutil.ReadAll(reqest.Body)spiltB := strings.Split(string(b), " ")if spiltB[0] == "good" {MYIP[0].IsUpdate = true}}func main() {//InitializationMYIP[0] = new(IpInfo)for {newIP := getMyIp("http://myip.dnsdynamic.org")checkIP(newIP)time.Sleep(300 * time.Second)}}

三、說明 :將代碼中的xxxx更換為你在DNSdynamic網站上的資訊,即可

四、運行,每五分鐘檢查一下IP是否有變化,哈哈!你們自個兒玩去吧

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.