PHP code example of sameoldnick / laravel-geolocator
1. Go to this page and download the library: Download sameoldnick/laravel-geolocator library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
use SameOldNick\Geolocator\Facades\Geolocator;
$location = Geolocator::lookup('8.8.8.8');
use SameOldNick\Geolocator\Contracts\Geolocator as GeolocatorContract;
use SameOldNick\Geolocator\Facades\Geolocator;
Geolocator::lookup('8.8.8.8'); // facade
app(GeolocatorContract::class)->lookup('8.8.8.8'); // contract
app('geolocator')->lookup('8.8.8.8'); // container alias
\Geolocator::lookup('8.8.8.8');
$location = Geolocator::lookup('8.8.8.8'); // country, city and ASN
$country = Geolocator::lookupCountry('8.8.8.8'); // country only
$city = Geolocator::lookupCity('8.8.8.8'); // city only
$asn = Geolocator::lookupAsn('8.8.8.8'); // ASN only
$location->ipAddress; // '8.8.8.8'
$location->country?->countryCode; // e.g. 'US'
$location->country?->countryName; // e.g. 'United States'
$location->country?->getCoordinates(); // e.g. ['latitude' => 37.09, 'longitude' => -95.71]
$location->city?->city; // e.g. 'Ashburn'
$location->city?->state1; // e.g. 'Virginia'
$location->city?->timezone; // e.g. 'America/New_York'
$location->asn?->asn; // e.g. 15169
$location->asn?->organization; // e.g. 'Google LLC'
$location->hasResults(); // true when any edition returned data
$location->toArray();
Route::get('/location', function (Illuminate\Http\Request $request) {
return $request->geolocate()->toArray();
});
use SameOldNick\Geolocator\Drivers\FakeGeolocator;
use SameOldNick\Geolocator\DTOs\AsnResult;
use SameOldNick\Geolocator\DTOs\LocationResult;
use SameOldNick\Geolocator\Facades\Geolocator;
/** @var FakeGeolocator $driver */
$driver = Geolocator::fake();
Geolocator::lookup('8.8.8.8'); // random result, no database access
// Return a specific result for an address.
$driver->mock('8.8.8.8', new LocationResult(
ipAddress: '8.8.8.8',
country: null,
city: null,
asn: AsnResult::create(15169, 'Google LLC'),
));
// Or mock an address that resolves to nothing.
$driver->mock('1.1.1.1');
use SameOldNick\Geolocator\Contracts\Geolocator as GeolocatorContract;
use SameOldNick\Geolocator\DTOs\LocationResult;
use SameOldNick\Geolocator\Facades\Geolocator;
class MyGeolocator implements GeolocatorContract
{
public function lookup(string $ip): LocationResult { /* ... */ }
public function lookupCountry(string $ip): LocationResult { /* ... */ }
public function lookupCity(string $ip): LocationResult { /* ... */ }
public function lookupAsn(string $ip): LocationResult { /* ... */ }
}
Geolocator::extend('my-driver', fn ($app) => new MyGeolocator());