Class: Ec2UltraDNSUpdater::IpInfo
- Inherits:
-
Object
- Object
- Ec2UltraDNSUpdater::IpInfo
- Defined in:
- lib/ec2_ultradns_updater/ip_info.rb
Class Method Summary collapse
-
.local_ip(host) ⇒ Object
nice trick from: coderrr.wordpress.com/2008/05/28/get-your-local-ip-address/.
- .local_ipv4 ⇒ Object
- .local_ipv6 ⇒ Object
Class Method Details
.local_ip(host) ⇒ Object
nice trick from: coderrr.wordpress.com/2008/05/28/get-your-local-ip-address/
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_ipv4 ⇒ Object
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_ipv6 ⇒ Object
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 |