Module: PublicIp

Defined in:
lib/public_ip.rb,
lib/public_ip/version.rb,
lib/public_ip/service/ipify.rb,
lib/public_ip/service/plain.rb,
lib/public_ip/service/akamai.rb,
lib/public_ip/service/dyndns.rb,
lib/public_ip/service/ip_api.rb,
lib/public_ip/service/simple.rb,
lib/public_ip/service/ip_echo.rb,
lib/public_ip/service/ip_info.rb,
lib/public_ip/service/ident_me.rb,
lib/public_ip/service/registry.rb,
lib/public_ip/service/smart_ip.rb,
lib/public_ip/service/json_type.rb,
lib/public_ip/service/amazon_aws.rb,
lib/public_ip/service/curl_my_ip.rb,
lib/public_ip/service/ip_chicken.rb,
lib/public_ip/service/mx_toolbox.rb,
lib/public_ip/service/ifconfig_me.rb,
lib/public_ip/service/parsed_html.rb,
lib/public_ip/service/registrable.rb,
lib/public_ip/service/i_can_haz_ip.rb,
lib/public_ip/service/wtf_is_my_ip.rb,
lib/public_ip/service/what_is_my_ip.rb,
lib/public_ip/service/matched_expression.rb,
lib/public_ip/service/what_is_my_ip_address.rb,
lib/public_ip/service/private_internet_access.rb

Defined Under Namespace

Modules: Service Classes: UnknownService

Constant Summary collapse

MAX_RETRY_ATTEMPTS =
3
TIMEOUT_IN_SECS =
3
VERSION =
'0.2.1'.freeze

Class Method Summary collapse

Class Method Details

.get_ip(service: :random) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/public_ip.rb', line 19

def get_ip(service: :random)
  tries ||= MAX_RETRY_ATTEMPTS
  if service == :random
    PublicIp::Service::Registry.random_service.ip
  else
    PublicIp::Service::Registry[service].ip
  end
rescue PublicIp::Service::TimedOut, PublicIp::Service::InvalidIpAddress
  tries -= 1
  retry if tries.positive? && service == :random

  raise
end

.list_servicesObject



33
34
35
# File 'lib/public_ip.rb', line 33

def list_services
  PublicIp::Service::Registry.available_services
end