DNSPod 动态解析(DDNS) 的 Ruby 版本
发布时间:2020-12-17 04:11:49 所属栏目:百科 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 [email?protected]:~# cat syncip.rb #!/usr/bin/env ruby#encoding:utf-8#code by johnlen shawrequire 'socket' require 'net/http' require 'net/h
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 [email?protected]:~# cat syncip.rb #!/usr/bin/env ruby #encoding:utf-8 #code by johnlen shaw require 'socket' require 'net/http' require 'net/https' require 'time' require 'open-uri' require 'net/telnet' $parms = { "login_email" => "[email?protected]","login_password" => "xxxxxx","format" => "json","domain_id" => 1012096,"record_id" => 15271821,"sub_domain" => "d610","record_line" => "默认","value" => "" } current_ip = nil def getip begin server = Net::Telnet::new('Host' => 'ns1.dnspod.net','Port' => 6666,'Telnetmode' => false) server.cmd("n") do |response| return response end rescue Exception => ex sleep(30) getip end end def ddns(ip) $parms["value"] = ip.chomp.to_s url = URI.parse('https://dnsapi.cn:443/Record.Ddns') http = Net::HTTP.new(url.host,url.port) http.use_ssl = true if url.scheme == 'https' request = Net::HTTP::Post.new(url.path) request.set_form_data($parms) puts http.request(request).body return true end if $0 == __FILE__ # begin loop do puts ip = getip if current_ip != ip then if ddns(ip) then current_ip = ip end end sleep(60) end # rescue Exception => ex # p ex # return "Debug and fix me please." # end end 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |