laravel-geolocation maintained by bkhim
Description
Laravel geolocation with built-in fraud prevention, risk scoring, MFA triggers, IP blocking, threat intelligence, and security auditing. 6 providers (IP2Location.io, MaxMind, IpInfo, IpStack, IpApi, IpGeolocation), proxy/VPN/Tor detection, login tracking, timezone/currency personalization for Laravel 10-13
Author
Last update
2026/07/05 11:38
(dev-main)
License
Downloads
954
Tags
Laravel Geolocation
The complete global app toolkit for Laravel.
Detect location, personalize experiences, prevent fraud, and secure logins — all in one package.
One Package. Everything You Need for a Global App.
| Feature | What It Does |
|---|---|
| Location Detection | City, region, country, coordinates from any IP — 6 providers |
| Timezone Management | Auto-detect and convert times to user's local timezone |
| Currency Detection | Show prices in user's local currency and format |
| Fraud Prevention | Proxy/VPN/Tor detection, risk scoring, threat intelligence |
| Login Security | Track logins, detect new countries/cities, trigger MFA |
| Geo-Blocking | Allow/deny countries and continents via middleware |
| GDPR and Privacy | IP anonymization, consent management, data pruning |
Trusted By Developers
- 780+ installs and growing
- 149 tests passing
- Built for Laravel 10-13
- PHP 8.2, 8.3, 8.4 compatible
- MIT Licensed
View on Packagist · Report Issues · Star on GitHub
One Line of Code
$details = Geolocation::lookup();
echo $details->getCity(); // "Mountain View"
echo $details->getTimezone(); // "America/Los_Angeles"
echo $details->getCurrencyCode(); // "USD"
Security Built In (Not Bolted On)
if ($details->isProxy() || $details->isTor()) {
return redirect()->route('mfa.challenge');
}
// Or get a full risk assessment
$risk = $user->getRiskScore($request->ip());
// ['score' => 45, 'is_high_risk' => false, 'triggers' => [...]]
6 Providers. One API.
| Provider | Free Tier | Fraud Score | Proxy Detection |
|---|---|---|---|
| ipapi.co | 30k/mo | No | Yes |
| IP2Location.io | 50k/mo | Yes | Yes |
| IpInfo | Unlimited* | No | No |
| MaxMind | Unlimited | No | No |
| IPStack | 100/mo | No | No |
| IPGeolocation | 1k/mo | Yes | Yes |
*IpInfo Lite: country only
Quick Install
composer require bkhim/laravel-geolocation
php artisan vendor:publish --provider="Bkhim\Geolocation\GeolocationServiceProvider" --tag=geolocation-config
# For security features (login tracking, IP blocking):
php artisan vendor:publish --tag=geolocation-migrations
php artisan migrate
// That's it.
$location = Geolocation::lookup('8.8.8.8');
echo $location->getCountry(); // "United States"
Use Cases
| Use Case | How It Helps |
|---|---|
| Global SaaS | Auto-detect timezone, currency, locale for each user |
| Login Security | MFA triggers on new locations, block proxies/VPNs |
| E-commerce | Local currency, geo-blocking, shipping zone detection |
| Analytics | Visitor country/city tracking without a third-party service |
| Fraud Prevention | Risk scoring, impossible travel detection, IP blocklisting |
Documentation
Built for Laravel 10-13 | PHP 8.2+ | MIT License