Feature request: Integrating IPinfo's API and Database service for IP geolocation, ASN, and more.
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 2k
- Forks
- 343
- PR merge metrics
- No merged PRs in 30d
Description
I am requesting support for IPinfo's service in MSTicpy because it addresses certain limitations of the project and extends the product's capabilities.
Is your feature request related to a problem? Please describe.
The existing IP geolocation and metadata solution is limiting. Considering the reduced accuracy, requirements to signup for a service, reducated reduced API rate limit, I am requesting you to support IPinfo's service.
Describe the solution you'd like
Please see below.
Describe alternatives you've considered
I have not considered any alternatives
Additional context
Please see below.
IPinfo offers two types of services:
- Data Downloads (Local database in MMDB file format that permits an unlimited amount of queries)
- API service (A web service that is easy to integrate)
Data Downloads
We offer databases in MMDB file format which this project can adopt fairly easily. The data downloads can provide various amount of information based on IP address that are includes but not limited to IP location, VPN and anonymous IP detection, Hosted Domains, ASN information etc.
The free IP to Country ASN database
I am requesting to add support for IPinfo's IP to Country database to the project. The database has the following features:
- It includes country and ASN information in the same database.
- It is updated daily, with zero compromise to accuracy. There is no range clustering, and the database provides full accuracy.
- The data granularity reaches individual IP level.
- The database comes in MMDB database format.
- It is licensed under CC-BY-SA 4.0, permitting commercial usage.
- Available file formats include: CSV, MMDB, JSON
- The data is tabular and unnested, making it very easy to use. The dataset includes both IPv4 and IPv6 in a single file.
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 |
Documentation: https://ipinfo.io/developers/ip-to-country-asn-database
Samples are available here: https://github.com/ipinfo/sample-database/tree/main/IP%20to%20Country%20ASN
The database can be downloaded simply by accessing the storage URI with an access token.
curl -L https://ipinfo.io/data/free/country_asn.mmdb?token=<YOUR_TOKEN> -o country_asn.mmdb
Let me know what you think. Thanks!
Why make the change or support
The project currently uses MaxMind's Geolite database which has a handful of problems.
| Points | MaxMind's Geolite Dataset | IPinfo's free Database |
|---|---|---|
| Licensing | Does not permit distribution of the database or API keys. They require commercial distribution licensing that costs thousands of dollars, even to distribute a free database. Each user must use their own account to use their own database. | IPinfo's free database is licensed under CC-BY-SA 4.0 which permits commercial distribution even through providing an attribution. |
| Accuracy | Inherently compromised accuracy | Full accuracy and zero compromise |
| Updates | Twice a week updates. | Daily updates |
| Download mechanism | Generally complicated. The product is also zipped. | Database can be downloaded directly from a storage URI and does not involve unzipping. |
| Data structure | Data structure is nested and irregular | Predictable and standardized data structure |
API service
I would like to recommend ipinfo.io for IP data.
- Provides highly accurate IP geolocation backed by our probe network infrastructure.
- Free tier access token supports 50,000 requests per month.
- IPinfo supports HTTPS/SSL encryption on all endpoints.
- Tokenless access grants 1,000 requests per day.
- No rate limit for repeated API requests. You can make all the allocated requests in one go.
- Includes ASN and hostname information. Supports bulk enrichment through a single API endpoint. We also have a comprehensive integration library.
Usage example:
curl https://ipinfo.io/8.8.8.8
{
"ip": "8.8.8.8",
"hostname": "dns.google",
"anycast": true,
"city": "Mountain View",
"region": "California",
"country": "US",
"loc": "37.4056,-122.0775",
"org": "AS15169 Google LLC",
"postal": "94043",
"timezone": "America/Los_Angeles"
}
Documentation: https://ipinfo.io/developers
Free IP databases: https://ipinfo.io/products/free-ip-database
Consider including IPinfo in the project for accurate data and generous free access. Please let me know what you think. Thank you very much.
Why make the change or support
IPstack literally charges $13 dollar a month for the features IPinfo already provides for free!
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue names no files, tests, or entry points. Start by locating MSTICpy's existing MaxMind and IPstack geolocation integrations, then determine whether the requested scope is the IPinfo API, the MMDB database, or both. Done should include an agreed interface, implementation scope, and tests for the supported IPinfo service.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend-api-design, databases
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100