IPGeolocation Databases Portfolio
ipgeolocation provides seven databases:
- IP To Country Database
Provides country-level location data for any IPv4/IPv6 address.
- IP to City Database
Offers detailed city-level geolocation for IP addresses.
- IP to ISP Database
Identifies the ISP and organization associated with an IP address.
- IP to City & ISP Database
Provides city-level geolocation along with ISP information.
- IP to Proxy Database
Detects VPNs, proxies, and other anonymizers for IP addresses.
- IP to City & Proxy Database
Offers city-level geolocation with proxy and VPN detection.
- IP to City, ISP & Proxy Database
Provides city, ISP, and proxy detection data for IP addresses.
This documentation provides complete details of features and available options in the above DB Plans. For information related to our IP Geolocation APIs, please goto APIs Documentation .
Database Archives
Our database archives include a comprehensive database api system that facilitates data retrieval and geolocation queries. To access the complete setup guide on how ot deploy the ipgeolocation-database-reader-2.0.0.war
Java API , please follow the Database API System.
Additionally, The archives also include relational database files, like db-places and db-country, which facilitate effective management of geographic and cultural datasets, offering access to multilingual and reference information through unique identifiers.
Geo DB Relational Files
The db-country and db-places files are integral components of a relational database system designed to streamline geographic and cultural data management. These files are embedded within the full database to provide efficient access to multilingual and reference data through unique id values.
DB Places holds place names in various languages, allowing seamless multilingual support for geographic locations. The id in this file is referenced by other database files to retrieve place names across different languages while DB Country contains comprehensive country specific information.
Together, these relational files enable a highly efficient structure for referencing and managing geographic data, simplifying database queries through the use of ids and providing flexibility in handling multilingual and cross-referenced information across the entire system. For information related to our IP Geolocation API Database, please Contact our support.
I - DB Country File
The db-country file provides detailed information about countries, including continent codes, country codes, currency details, and languages. Each country is uniquely identified by an id, and fields such as place IDs for continent name, country name, and country capital reference the db-places file for multilingual support. This relational structure enables efficient access to country-specific data, enhancing geographic and cultural data representation across systems.
You need a valid 'ipgeolocation API key' to download and use this Database. Sign up here and get your free API key if you don’t have one.
Available DB Country Data Format
id | continent_code | continent_name_place_id | country_code2 | country_code3 | country_name_place_id | country_capital_place_id | currency_code | currency_name | currency_symbol | calling_code | tld | languages |
---|---|---|---|---|---|---|---|---|---|---|---|---|
68 | EU | 7 | ES | ESP | 34 | 358 | EUR | Euro | € | +34 | .es | es-ES,ca,gl,eu,oc |
114 | AS | 5 | JP | JPN | 13 | 271 | JPY | Yen | ¥ | +81, | .jp | ja |
234 | NA | 6 | US | USA | 28 | 400 | USD | US Dollar | $ | +1 | .us | en-US,es-US,haw,fr |
Reference to DB Country Database File
Field | Type | Description | Can be empty? |
---|---|---|---|
id | integer | A unique identifier for the record, representing the specific country or region in the database. | No |
continent_code | string | The code representing the continent to which the country belongs (e.g., "AF" for Africa, "EU" for Europe). | No |
continent_name_place_id | integer | A reference to the db-places file, where the place ID corresponds to the continent's name in multiple languages. | No |
country_code2 | string | The ISO-3166-1 alpha-2 two-letter country code (e.g., "US" for the United States). | No |
country_code3 | string | The ISO-3166-1 alpha-3 three-letter country code (e.g., "USA" for the United States). | No |
country_name_place_id | integer | A reference to the db-places file, where the place ID corresponds to the country name in multiple languages. | No |
country_capital_place_id | integer | A reference to the db-places file for the place ID of the country's capital city in multiple languages. | No |
currency_code | string | The ISO-4217 code representing the currency of the country (e.g., "USD" for United States Dollar). | No |
currency_name | string | The full name of the currency used in the country (e.g., "United States Dollar"). | No |
currency_symbol | string | The symbol used to represent the currency (e.g., "$" for USD). | No |
calling_code | string | The international dialing code for the country (e.g., "+1" for the United States). | No |
tld | string | The country’s top-level domain (e.g., ".us" for the United States). | No |
languages | string | A comma-separated list of the languages spoken in the country, represented by their ISO-639-1 language codes (e.g., "en" for English, "es" for Spanish). | No |
II - DB Places File
The db-places file serves as a relational database, providing place names translated into multiple languages. Each entry is uniquely identified by an id, which is referenced by other database files to retrieve place names in languages such as English, German, Russian, Japanese, French, Chinese, Spanish, Czech, and Italian. This file facilitates multilingual support and enhances the relational structure of geographic data across various systems.
You need a valid 'ipgeolocation API key' to download and use this Database. Sign up here and get your free API key if you don’t have one.
Available DB Places Data Format
id | place_english | place_german | place_russian | place_japanese | place_french | place_chinese | place_spanish | place_czech | place_italian |
---|---|---|---|---|---|---|---|---|---|
5 | Asia | Asien | Азия | アジア | Asie | 亚洲 | Asia | Asie | Asia |
6 | North America | Nordamerika | Северная Америка | 北アメリカ | Amérique du Nord | 北美洲 | Norteamérica | Severní Amerika | America del Nord |
7 | Europe | Europa | Европа | ヨーロッパ | Europe | 欧洲 | Europa | Evropa | Europa |
Reference to DB Places Database File
Field | Type | Description | Can be empty? |
---|---|---|---|
id | integer | A unique identifier for the place, representing a specific geographic location, such as a continent, country, or city. | No |
place_english | string | The name of the place in English. | No |
place_german | string | The name of the place in German (Deutsch). | Yes |
place_russian | string | The name of the place in Russian (Русский). | Yes |
place_japanese | string | The name of the place in Japanese (日本語). | Yes |
place_french | string | The name of the place in French (Français). | Yes |
place_chinese | string | The name of the place in Chinese (中文). | Yes |
place_spanish | string | The name of the place in Spanish (Español). | Yes |
place_czech | string | The name of the place in Czech (Čeština). | Yes |
place_italian | string | The name of the place in Italian (Italiano). | Yes |
Relational Database File Stats
Prefer data in a specific format? We support all the important ones
DB Country CSV
Filesize | 16 KB |
---|---|
Fields | 13 |
Last updated | Today |
Entries | 227 |
DB Places CSV
Filesize | 53 KB |
---|---|
Fields | 10 |
Last updated | Today |
Entries | 450 |
Utilize the power of our IP to location database to enhance your marketing strategies, improve location-based services, and gain deeper insights into your audience. Whether you're conducting demographic assessments or implementing city-level targeting for advertising, our database offers the accurate and detailed data you need to succeed.
IPGeolocation.io Database API System Guide
This is a step-by-step guide on how to deploy the ipgeolocation-database-reader-2.0.0.war
Java API and consume API responses.
Requirements
- At least
JDK 8
(built and tested using JDK 1.8). - For CSV databases, 4-8 GB RAM for smaller databases and up to 16 GB RAM for larger databases (e.g.,
DB-IV
,DB-VI
, andDB-VII
). - For MMDB databases, 2-4 GB RAM is sufficient.
- The
ipgeolocation-database-reader-2.0.0.war
file provided in the archive.
Basic Usage
• For Linux
Follow the steps below to deploy and consume the IP to City+ISP+Proxy database:
- Create
~/conf/ipgeolocation
directory in the home directory: - Create
database-reader-config.yaml
file in the directory: - Add the following configuration:Replace the following values as needed:
- workingDirectory: Replace
/etc/ipgeolocation
value with the directory path where you want to place the database files. - apiKey: Your IPGeolocation database subscription key. In order to use the APIs, Sign up for a desired plan.
- version: Replace
DB-VII
value with the database version that you've subscribed to. It can be DB-I, DB-II, DB-III, DB-IV, DB-V, DB-VI, or DB-VII. - updateInterval: Replace
week
value with your database subscription update interval. It can beweek
, ormonth
. - type: Replace
mmdb
value with your choice of database to query from. It can becsv
, ormmdb
. It's default value is mmdb and can be skipped from configuration. - autoFetchAndUpdate: Set to
true
to auto-update orfalse
to disable.- If set to
true
, the database api system will download the latest database as soon as it is available and will restart to load the latest database in-memory. - If set to
false
, the database api system will not check for the updated database for you. You can send a POST request to /database/update endpoint to fetch and update the database in-memory if an update is available. For example, here is a cURL request: curl --location --request POST 'http://address-to-api:8080/database/update' - It's default value is true and can be skipped from configuration.
- If set to
- workingDirectory: Replace
- Run the WAR file:
Use
-Xms<ram_size1>
for minimum RAM and-Xmx<ram_size2>
for maximum RAM. You can also deploy the WAR file in an embedded container like Apache Tomcat.
The database api system will download the latest database and load it in-memory while bootstrapping and will update the database as soon as the new update is available, if autoFetchAndUpdate
is set to true
.
Note: database api system needs to restart after fetching the latest database to cache the updated database in-memory because caching the database without restarting will require as much as double of the required RAM which is a very costly choice.
Other Ways to Provide Configurations (Linux)
By default, the database api system will look at ~/conf/ipgeolocation/database-reader-config.yaml path for the YAML file.
You can provide the YAML configurations from your custom location as well. Let's assume that you've created the YAML configurations at /etc/ipgeolocation/ipgeo-db-reader-conf.yaml.
Here is how you can pass it to the database api system:
• For Windows
- Create
C:\conf\ipgeolocation
folders in the 'C' or any other drive of your choice. - Create 'database-reader-config.yaml' file in the C:\conf\ipgeolocation directory.
- Add the following configuration:Replace the following values as needed:
- workingDirectory: Replace
C:\\conf\\ipgeolocation
value with the directory path where you want to place the database files. - apiKey: Your IPGeolocation database subscription key. In order to use the APIs, Sign up for a desired plan.
- version: Replace
DB-VII
value with the database version that you've subscribed to. It can be DB-I, DB-II, DB-III, DB-IV, DB-V, DB-VI, or DB-VII. - updateInterval: Replace
week
value with your database subscription update interval. It can beweek
, ormonth
. - type: Replace
mmdb
value with your choice of database to query from. It can becsv
, ormmdb
. It's default value is mmdb and can be skipped from configuration. - autoFetchAndUpdate: Set to
true
to auto-update orfalse
to disable.- If set to
true
, the database api system will download the latest database as soon as it is available and will restart to load the latest database in-memory. - If set to
false
, the database api system will not check for the updated database for you. You can send a POST request to /database/update endpoint to fetch and update the database in-memory if an update is available. For example, here is a cURL request: curl --location --request POST 'http://address-to-api:8080/database/update' - It's default value is true and can be skipped from configuration.
- If set to
- workingDirectory: Replace
- Run the WAR file:
Use
-Xms<ram_size1>
for minimum RAM and-Xmx<ram_size2>
for maximum RAM. You can also deploy the WAR file in an embedded container like Apache Tomcat.
The database api system will download the latest database and load it in-memory while bootstrapping and will update the database as soon as the new update is available, if autoFetchAndUpdate
is set to true
.
Note: database api system needs to restart after fetching the latest database to cache the updated database in-memory because caching the database without restarting will require as much as double of the required RAM which is a very costly choice.
Other Ways to Provide Configurations (Windows)
Another way is not create a YAML file and provide the configurations as the command-line arguments to the war file. Here is how you can do that: :
shell
java -Dipgeolocation.database.workingDirectory=/etc/ipgeolocation -Dipgeolocation.database.api=YOUR_API_KEY -Dipgeolocation.database.version=DB-VII -Dipgeolocation.database.updateInterval=week -Dipgeolocation.database.type=week -Dipgeolocation.database.autoFetchAndUpdate=false -jar -Xms6G -Xmx10G /path/to/ipgeolocation-database-reader-2.0.0.war
API SDKs
To facilitate the developers, we have added some SDKs for various programming languages. The detailed documentation on how to use these SDKs is available in the respective SDK's documentation page linked below.
Our SDKs are also available on Github. Feel free to help us improve them. SDKs. Following are the available SDKs: