class Ruby

Detects your current IP via Ruby Sockets

Public Class Methods

new(version) click to toggle source
# File lib/detectors/ruby.rb, line 6
def initialize(version)
  @version = version == 6 ? 6 : 4
end

Public Instance Methods

detect() click to toggle source
# File lib/detectors/ruby.rb, line 10
def detect
  ip_addresses =
    if @version == 6
      Socket.ip_address_list.select(&:ipv6?).reject(&:ipv6_loopback?)
    else
      Socket.ip_address_list.select(&:ipv4?).reject(&:ipv4_loopback?)
    end

  ip = ip_addresses.first.ip_address

  raise 'no ip detected' unless ip

  ip
end