Class: Ec2UltraDNSUpdater::IpInfo

Inherits:
Object
  • Object
show all
Defined in:
lib/ec2_ultradns_updater/ip_info.rb

Class Method Summary collapse

Class Method Details

.local_ip(host) ⇒ Object



31
32
33
34
35
36
37
38
39
40
# File 'lib/ec2_ultradns_updater/ip_info.rb', line 31

def self.local_ip(host)
  socket_type = (host =~ /\:/) ? Socket::AF_INET6 : Socket::AF_INET
  orig, Socket.do_not_reverse_lookup = Socket.do_not_reverse_lookup, true  # turn off reverse DNS resolution temporarily
  UDPSocket.open(socket_type) do |s|
    s.connect host, 1
    s.addr.last
  end
ensure
  Socket.do_not_reverse_lookup = orig
end

.local_ipv4Object



19
20
21
22
# File 'lib/ec2_ultradns_updater/ip_info.rb', line 19

def self.local_ipv4
  # pdns1.ultradns.net.	IN	A	204.74.108.1
  local_ip('204.74.108.1')
end

.local_ipv6Object



24
25
26
27
28
# File 'lib/ec2_ultradns_updater/ip_info.rb', line 24

def self.local_ipv6
  # pdns1.ultradns.net.	IN	AAAA	2001:502:f3ff::1
  # 2001:502:f3ff:0:0:0:0:1
  local_ip('2001:502:f3ff::1')
end