bkhim/laravel-geolocation

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 Larave

Maintainers

Package info

github.com/bkhim/laravel-geolocation

pkg:composer/bkhim/laravel-geolocation

Transparency log

Statistics

Installs: 787

Dependents: 0

Suggesters: 0

Stars: 1

4.5.0 2026-07-05 09:25 UTC

This package is auto-updated.

Last update: 2026-07-05 09:38:30 UTC


README

The complete global app toolkit for Laravel.
Detect location, personalize experiences, prevent fraud, and secure logins — all in one package.

Latest Version Total Downloads Tests Stable License

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

Compare all providers

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