Files
GeoLite2-City/README.md

124 lines
3.8 KiB
Markdown

# GeoLite2-City - Free IP Geolocation Database
[![npm version](https://img.shields.io/npm/v/geolite2-city.svg)](https://www.npmjs.com/package/geolite2-city)
[![npm downloads](https://img.shields.io/npm/dm/geolite2-city.svg)](https://www.npmjs.com/package/geolite2-city)
[![License](https://img.shields.io/badge/license-CC%20BY--SA%204.0-green)](https://creativecommons.org/licenses/by-sa/4.0/)
[![GitHub Stars](https://img.shields.io/github/stars/wp-statistics/GeoLite2-City?style=social)](https://github.com/wp-statistics/GeoLite2-City)
Free MaxMind GeoLite2-City database for IP geolocation. Get city-level location data from any IP address. Automatically updated and served via jsDelivr CDN.
**Website:** [geo.wp-statistics.com](https://geo.wp-statistics.com)
#### Last updated: 2025-12-21
---
## Features
- **City-Level Accuracy** - Get country, city, coordinates, timezone, and more
- **Auto-Updated** - Database updated automatically every Tuesday & Friday
- **Fast CDN** - Served via jsDelivr with global edge locations
- **No Authentication** - Direct download, no API keys required
- **Free Forever** - Open source under CC BY-SA 4.0 license
---
## Quick Start
### Direct Download
```
https://cdn.jsdelivr.net/npm/geolite2-city/GeoLite2-City.mmdb.gz
```
### PHP
```php
use GeoIp2\Database\Reader;
$reader = new Reader('/path/to/GeoLite2-City.mmdb');
$record = $reader->city('128.101.101.101');
echo $record->country->name; // 'United States'
echo $record->city->name; // 'Minneapolis'
```
### Node.js
```javascript
const { Reader } = require('@maxmind/geoip2-node');
const reader = await Reader.open('./GeoLite2-City.mmdb');
const response = reader.city('128.101.101.101');
console.log(response.country.names.en); // 'United States'
console.log(response.city.names.en); // 'Minneapolis'
```
### Python
```python
import geoip2.database
reader = geoip2.database.Reader('./GeoLite2-City.mmdb')
response = reader.city('128.101.101.101')
print(response.country.name) # 'United States'
print(response.city.name) # 'Minneapolis'
```
### WordPress (WP Statistics)
```php
use WP_Statistics\Service\Geolocation\GeolocationFactory;
$location = GeolocationFactory::getLocation('128.101.101.101');
echo $location['city']; // 'Minneapolis'
```
---
## Database Info
| Property | Value |
|----------|-------|
| **CDN URL** | `https://cdn.jsdelivr.net/npm/geolite2-city/GeoLite2-City.mmdb.gz` |
| **npm** | `npm install geolite2-city` |
| **Update Schedule** | Every Tuesday & Friday (automatic) |
| **Size** | ~68 MB (compressed) |
| **Format** | MaxMind DB (MMDB) |
| **License** | [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/) |
---
## Update Schedule
This database is **automatically updated** via GitHub Actions:
- **Schedule:** Every Tuesday and Friday at 06:00 UTC
- **Source:** [MaxMind GeoLite2](https://dev.maxmind.com/geoip/geolite2-free-geolocation-data)
- **Distribution:** Published to npm, served via jsDelivr CDN
---
## Related Resources
- **Documentation:** [geo.wp-statistics.com](https://geo.wp-statistics.com)
- **DB-IP Alternative:** [DbIP-City-lite](https://github.com/wp-statistics/DbIP-City-lite)
- **Country Database:** [GeoLite2-Country](https://github.com/wp-statistics/GeoLite2-Country)
- **WP Statistics:** [wordpress.org/plugins/wp-statistics](https://wordpress.org/plugins/wp-statistics/)
---
## Attribution
This database is provided by [MaxMind](https://www.maxmind.com/). When using this database, please include appropriate attribution as required by the [CC BY-SA 4.0 license](https://creativecommons.org/licenses/by-sa/4.0/).
---
## License
GeoLite2-City by MaxMind is licensed under [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/).
Maintained by [VeronaLabs](https://veronalabs.com) and the [WP Statistics](https://wp-statistics.com) team.