Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

[Review request] Interested in integrating IPinfo's free IP databses for local IP address lookups. #1632

Open
abdullahdevrel opened this issue Sep 13, 2023 · 2 comments

Comments

@abdullahdevrel
Copy link

Context

I am the DevRel of IPinfo.io, and we really appreciate the support the library has for our API.

We are hoping to do a PR for integrating IPinfo's free IP databases for the project. We are hoping to write the integration code to support our free IP to Country ASN database.

Features of the database:

  • Daily updates, full accuracy and no range aggregation
  • IPv4 and IPv6 information from the same database
  • Supported file format: CSV, MMDB, and JSON
  • Licensed under CC-BY-SA 4.0

Database schema

FIELD NAME EXAMPLE DATA TYPE DESCRIPTION
start_ip 1.0.16.0 TEXT Starting IP address of an IP address range
end_ip 1.0.31.255 TEXT Ending IP address of an IP address range
country JP TEXT ISO 3166 country code of the location
country_name Japan TEXT Name of the country
continent AS TEXT Continent code of the country
continent_name Asia TEXT Name of the continent
asn AS2519 TEXT Autonomous System Number
as_name ARTERIA Networks Corporation TEXT Name of the AS (Autonomous System) organization
as_domain arteria-net.com TEXT Official domain or website of the AS organization

Users can download the database using their free account access token. The download URL is:

curl -L https://ipinfo.io/data/free/country_asn.mmdb?token=<ACCESS_TOKEN> -o country_asn.mmdb

The MMDB reader library facilitates only IP address lookups and no reverse IP lookups or information searches.

Review

We would appreciate a review from the maintainer(s) before we start coding. We are hoping to implement the feature set described here: https://github.com/alexreisner/geocoder/blob/master/README_API_GUIDE.md#geolite2-geoip2

The features I am seeing at this moment are:

  • Pre-downloading the database and linking the file path
    • We have rate limits for data downloads. Users might also want to implement some sort of cronjob outside the project to refresh the data. Automatic download sounds nice but I am not sure about the implementation side. If you have any feedback please let us know.
  • Installing the maxminddb. The contribution guideline states: "Do not add dependencies on other gems". So, users must install the MMDB reader library before they get started.

If you have any feedback that will be greatly appreciated.

@alexreisner
Copy link
Owner

Thank you for the detailed request! This sounds like a really nice service and I'd be happy to add support for it. Your approach (imitating GeoLite2) is exactly right. I'm sorry about the no-external-dependency rule. The best way to handle the maxminddb gem requirement is also to imitate the GeoLite2 lookup and print a console message if the lookup is selected and the gem isn't present. Feel free to get started on a PR, which I will be happy to review.

@abdullahdevrel
Copy link
Author

@alexreisner awesome! I really appreciate the approval! I had geocoder in my mind since we launched our free DB. We will get started with the PR. Thank you very much.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants