Skip to content

Instantly share code, notes, and snippets.

@long-long-float
Created November 6, 2018 07:27
Show Gist options
  • Save long-long-float/6ae86bf32b7c231f073ff3345ab71026 to your computer and use it in GitHub Desktop.
Save long-long-float/6ae86bf32b7c231f073ff3345ab71026 to your computer and use it in GitHub Desktop.
お名前.comのDDNSのIPアドレスを更新するRubyスクリプト(thanks to https://qiita.com/ats124/items/59ec0f444d00bbcea27d)
require 'socket'
require 'openssl'
include OpenSSL
ONAMAE_DOMAIN = 'ddnsclient.onamae.com'
ONAMAE_PORT = 65010
ONAMAE_USER = ENV['ONAMAE_USER']
ONAMAE_PASS = ENV['ONAMAE_PASS']
HOSTNAME = ENV['ONAMAE_HOST'] # e.g. ddnsclient
DOMNAME = ENV['ONAMAE_DOMAIN'] # e.g. onamae.com
IPADDR = `curl inet-ip.info`.strip
tcp = TCPSocket.new(ONAMAE_DOMAIN, ONAMAE_PORT)
@socket = SSL::SSLSocket.new(tcp)
@socket.connect
def check_responce
res = @socket.gets.strip
raise "error: #{res}" unless res == '000 COMMAND SUCCESSFUL'
@socket.gets
end
check_responce
@socket.puts 'LOGIN'
@socket.puts "USERID:#{ONAMAE_USER}"
@socket.puts "PASSWORD:#{ONAMAE_PASS}"
@socket.puts '.'
check_responce
@socket.puts 'MODIP'
@socket.puts "HOSTNAME:#{HOSTNAME}"
@socket.puts "DOMNAME:#{DOMNAME}"
@socket.puts "IPV4:#{IPADDR}"
@socket.puts '.'
check_responce
@socket.puts 'LOGOUT'
@socket.puts '.'
check_responce
END {
tcp.close
@socket.close
puts 'connection closed'
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment