DHCP IP updater
This is the script I use to change the DNS record of my home IP when it changes. I have it running once a week and have not noticed a lapse in coverage. If your ISP has DHCP configured correctly, you will receive the same IP address when you are due for a renew. Otherwise you need a script like the one below.
#!/usr/bin/ruby
require 'aws-sdk'
require 'socket'
def my_first_public_ipv4
Socket.ip_address_list.detect{|intf| intf.ipv4? and !intf.ipv4_loopback? and !intf.ipv4_multicast? and !intf.ipv4_private?}
end
ip = my_first_public_ipv4.ip_address
unless ip.nil?
change = {
:action => 'UPSERT',
:resource_record_set => {
:name => "home.andrewwippler.com",
:type => "A",
:ttl => 600,
:resource_records => [{:value => ip}]
}}
route53 = Aws::Route53::Client.new(
region: 'us-east-1'
)
route53.change_resource_record_sets({
hosted_zone_id: '/hostedzone/XXXXXXXXXXXXXXX', # required
change_batch: { # required
changes: [change],
},
})
end