Module: Ip2Geo

Defined in:
lib/ip2geo.rb,
lib/ip2geo/data/states.rb,
lib/ip2geo/helpers/http.rb,
lib/ip2geo/methods/init.rb,
lib/ip2geo/data/messages.rb,
lib/ip2geo/helpers/cache.rb,
lib/ip2geo/data/constants.rb,
lib/ip2geo/methods/convert_ip.rb,
lib/ip2geo/methods/convert_ips.rb,
lib/ip2geo/helpers/check_version.rb,
lib/ip2geo/helpers/ip_validation.rb,
lib/ip2geo/methods/get_conversion.rb,
lib/ip2geo/methods/get_conversions.rb,
lib/ip2geo/methods/list_conversions.rb

Defined Under Namespace

Modules: Data, Helpers, Methods

Constant Summary collapse

VERSION =
'0.0.1'

Class Method Summary collapse

Class Method Details

.convert_ip(options = {}) ⇒ Hash?

Get geo information from an IP address.

Examples:

result = Ip2Geo.convert_ip(ip: '8.8.8.8')

Parameters:

  • options (Hash) (defaults to: {})

    The options for the conversion

Options Hash (options):

  • :ip (String)

    The IP address to retrieve geo information for (required)

Returns:

  • (Hash, nil)

    The API response containing geo data



65
66
67
# File 'lib/ip2geo.rb', line 65

def convert_ip(options = {})
    Methods::ConvertIP.call(options)
end

.convert_ips(options = {}) ⇒ Hash?

Get geo information from multiple IP addresses.

Examples:

result = Ip2Geo.convert_ips(ips: ['8.8.8.8', '1.1.1.1'])

Parameters:

  • options (Hash) (defaults to: {})

    The options for the conversion

Options Hash (options):

  • :ips (Array<String>)

    An array of IP addresses (required)

Returns:

  • (Hash, nil)

    The API response containing geo data for all IPs



77
78
79
# File 'lib/ip2geo.rb', line 77

def convert_ips(options = {})
    Methods::ConvertIPs.call(options)
end

.get_conversion(options = {}) ⇒ Hash?

Retrieve a single conversion by its ID.

Examples:

result = Ip2Geo.get_conversion(conversion_id: 'abc123')
result = Ip2Geo.get_conversion(conversion_id: 'abc123', select: ['ip', 'continent.country.name'])

Parameters:

  • options (Hash) (defaults to: {})

    The options for retrieving the conversion

Options Hash (options):

  • :conversion_id (String)

    The unique identifier (required)

  • :select (Array<String>)

    Optional array of property names to return

Returns:

  • (Hash, nil)

    The API response containing conversion data



91
92
93
# File 'lib/ip2geo.rb', line 91

def get_conversion(options = {})
    Methods::GetConversion.call(options)
end

.get_conversions(options = {}) ⇒ Hash?

Retrieve multiple conversions by their IDs.

Examples:

result = Ip2Geo.get_conversions(conversion_ids: ['abc123', 'def456'])

Parameters:

  • options (Hash) (defaults to: {})

    The options for retrieving conversions

Options Hash (options):

  • :conversion_ids (Array<String>)

    An array of unique identifiers (required)

  • :select (Array<String>)

    Optional array of property names to return

Returns:

  • (Hash, nil)

    The API response containing conversions data



104
105
106
# File 'lib/ip2geo.rb', line 104

def get_conversions(options = {})
    Methods::GetConversions.call(options)
end

.init(key, options = {}) ⇒ Boolean

Initializes the SDK with the given API key.

Examples:

Ip2Geo.init('your-api-key')
Ip2Geo.init('your-api-key', version_update_message: false)
Ip2Geo.init('your-api-key', cache_max_size: 500, cache_ttl: 60)

Parameters:

  • key (String)

    The API key used to authenticate with Ip2Geo

  • options (Hash) (defaults to: {})

    Optional configuration

Options Hash (options):

  • :version_update_message (Boolean)

    Whether to display version update messages (default: true)

  • :cache (Boolean)

    Whether to enable caching for successful conversions (default: true)

  • :cache_max_size (Integer)

    Maximum cached entries, min: 10, max: 50000 (default: 1000)

  • :cache_ttl (Integer)

    Cache TTL in seconds, min: 30, max: 86400 (default: 300)

Returns:

  • (Boolean)

    Whether the initialization was successful



53
54
55
# File 'lib/ip2geo.rb', line 53

def init(key, options = {})
    Methods::Init.call(key, options)
end

.ip_validation(ip_address) ⇒ Hash

Validate an IP address and return if it is IPv4 or IPv6.

Examples:

result = Ip2Geo.ip_validation('8.8.8.8')
# => { ip4: true, ip6: false }

Parameters:

  • ip_address (String)

    The IP address to validate

Returns:

  • (Hash)

    A hash with :ip4 and :ip6 boolean values



133
134
135
# File 'lib/ip2geo.rb', line 133

def ip_validation(ip_address)
    Helpers::IpValidation.validate(ip_address)
end

.list_conversions(options = {}) ⇒ Hash?

List conversions with pagination and optional filtering.

Examples:

result = Ip2Geo.list_conversions
result = Ip2Geo.list_conversions(limit: 10, offset: 20)
result = Ip2Geo.list_conversions(ip_search: '8.8.8.8')

Parameters:

  • options (Hash) (defaults to: {})

    The options for listing conversions

Options Hash (options):

  • :offset (Integer)

    The number of conversions to skip (default: 0)

  • :limit (Integer)

    The maximum number to return (default: 50, max: 50)

  • :select (Array<String>)

    Optional array of property names to return

  • :ip_search (String)

    Filter conversions by IP address

Returns:

  • (Hash, nil)

    The API response containing conversions list with pagination info



121
122
123
# File 'lib/ip2geo.rb', line 121

def list_conversions(options = {})
    Methods::ListConversions.call(options)
end

.selectHash

SELECT constants for field selection

Examples:

Ip2Geo.select[:COUNTRY_NAME]
# => 'continent.country.name'

Returns:

  • (Hash)

    The SELECT constants



144
145
146
# File 'lib/ip2geo.rb', line 144

def select
    Data::SELECT
end