Skip to main content

Free GeoIP library to help you convert IP to Geolocation information by iploka.

Project description

iploka

Get geolocation information from any IP addresses. Get free API Key from https://iploka.com for free-forever 10,000 monthly requests.

iploka was developed by Howuku. Howuku is an all-in-one CRO & analytics tool to help you optimize conversion rates and user experience.

PYTHON Version

Features

  • Free up to 10,000 monthly request
  • Support both IPv4 and IPv6
  • Additional timezone, currency and connection information

Installation

  • Include package in your project
$ pip install iploka-python

How to use

from iploka_geoip import GeoIP

geoip = GeoIP("YOUR_API_KEY")
# lookup ip address of the specified ip
data = geoip.lookup("134.201.250.155")
print(data)
  • And the complete result will be returned:
{
  "ip": "134.201.250.155",
  "type": "ipv4",
  "continent_code": "NA",
  "continent_name": "North America",
  "country_code": "US",
  "country_name": "United States",
  "region_code": "CA",
  "region_name": "California",
  "city": "Los Angeles",
  "latitude": 34.003,
  "longitude": -118.4298,
  "location": {
    "geoname_id": 4135386,
    "capital": "Washington",
    "languages": [
      {
        "code": "en-US",
        "name": "English"
      }
    ],
    "country_flag": "https://flagpedia.net/data/flags/h80/us.png",
    "country_flag_emoji": "🇺🇸",
    "country_flag_emoji_unicode": "U+1F1FA U+1F1F8",
    "calling_code": "1",
    "is_eu": false
  },
  "time_zone": {
    "id": "America/Los_Angeles",
    "current_time": "2021-06-29T20:01:53-07:00",
    "gmt_offset": -25200,
    "code": "-07",
    "is_daylight_saving": true
  },
  "currency": {
    "code": "USD",
    "name": "Us Dollar",
    "plural": "Us Dollars",
    "symbol": "$",
    "symbol_native": "$"
  },
  "connection": {
    "asn": 30722,
    "isp": "Vodafone Italia S.p.A."
  }
}

Example tests for iploka module

class GetRespTest(BaseTest):
    """Tests for our helper function: ``_get_resp``."""

    def test_returns_response(self):
        self.assertIsInstance(_get_resp('test', 'test'), Response)


class GeoIPLookupTest(BaseTest):
    """Tests for our ``GeoIP.lookup()`` method."""

    def test_raises_connection_error_on_connection_error(self):
        import iploka_geoip

        iploka_geoip.geoip.API_URI = 'https://api.asdgasggasgdasgdsasgdasdfadfsda.com'
        geoip = iploka_geoip.GeoIP('test')

        self.assertRaises(ConnectionError, geoip.lookup, '8.8.8.8')

    def test_raises_geoip_exception_on_error(self):
        import iploka_geoip

        iploka_geoip.geoip.API_URI = 'https://api.asdgasggasgdasgdsasgdasdfadfsds.com'
        geoip = iploka_geoip.GeoIP('test')

        self.assertRaises(GeoIPException, geoip.lookup, '8.8.8.8')

    def test_raises_service_error_on_error(self):
        import iploka_geoip

        iploka_geoip.geoip.API_URI = 'https://api.ipify.org/woo'
        geoip = iploka_geoip.GeoIP('test')

        self.assertRaises(ServiceError, geoip.lookup, '8.8.8.8')

    def test_returns_geoip_data(self):
        import iploka_geoip

        iploka_geoip.geoip.API_URI = 'https://api.iploka.com/api/v1'
        geoip = iploka_geoip.GeoIP(environ.get('API_KEY'))

        self.assertEqual(geoip.lookup('8.8.8.8')['ip'], '8.8.8.8')

Support

Email: hello@iploka.com

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iploka-python-1.0.0.tar.gz (5.7 kB view hashes)

Uploaded Source

Built Distribution

iploka_python-1.0.0-py3-none-any.whl (5.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page