fearrr / sypexgeo by fearrr
forked from scriptixru/sypexgeo

Supports GeoIP services (sypexgeo.net).
2,147
2
2
Package Data
Maintainer Username: fearrr
Maintainer Contact: 0x00@bk.ru (fearrr)
Package Create Date: 2017-03-11
Package Last Update: 2017-11-06
Home Page:
Language: PHP
License: BSD 2-Clause
Last Refreshed: 2024-04-15 15:10:52
Package Statistics
Total Downloads: 2,147
Monthly Downloads: 0
Daily Downloads: 0
Total Stars: 2
Total Watchers: 2
Total Forks: 1
Total Open Issues: 0

GeoIP for Laravel 5.4/5.5


The data comes from a database and from service http://sypexgeo.net

Installation

To get the latest version of SypexGeo simply require it in your composer.json file.

"fearrr/sypexgeo": "dev-master"

You'll then need to run composer install to download it and have the autoloader updated.

Once GeoIP is installed you need to register the service provider with the application. Open up config/app.php and find the providers key. If you use Laravel 5.5 autoload, skip this 2 steps.

'providers' => array(
    'Scriptixru\SypexGeo\SypexGeoServiceProvider',
)

GeoIP also ships with a facade which provides the static syntax for creating collections. You can register the facade in the aliases key of your config/app.php file.

'aliases' => array(
    'SypexGeo' => 'Scriptixru\SypexGeo\SypexGeoFacade',
)

Publish the configurations

Run this on the command line from the root of your project:

$ php artisan vendor:publish

A configuration file will be publish to config/sypexgeo.php

Usage

Getting the location data for a given IP:

$location = \SypexGeo::get('232.223.11.11');

Example Data

If data is received from the database - config/sypexgeo.php ('type' => 'database')

        [
            'city' => [
                'id' => 524901,
                'lat' => 55.75222,
                'lon' => 37.61556,
                'name_ru' => 'Москва',
                'name_en' => 'Moscow',
                'okato' => '45',
            ],
            'region' => [
                'id' => 524894,
                'lat' => 55.76,
                'lon' => 37.61,
                'name_ru' => 'Москва',
                'name_en' => 'Moskva',
                'iso' => 'RU-MOW',
                'timezone' => 'Europe/Moscow',
                'okato' => '45',
            ],
            'country' => [
                'id' => 185,
                'iso' => 'RU',
                'continent' => 'EU',
                'lat' => 60,
                'lon' => 100,
                'name_ru' => 'Россия',
                'name_en' => 'Russia',
                'timezone' => 'Europe/Moscow',
            ],
        ];

If data is received from the webservice - config/sypexgeo.php ( 'type' => 'web_service', 'view' => 'json' )

        [
              "ip" => "77.37.136.11"
              "city" => array:8 [
                     "id" => 524901
                     "lat" => 55.75222
                     "lon" => 37.61556
                     "name_ru" => "Москва"
                     "name_en" => "Moscow"
                     "okato" => "45"
                     "vk" => 1
                     "population" => 10381222
                  ]
              "region" => array:11 [
                    "id" => 524894
                    "lat" => 55.76
                    "lon" => 37.61
                    "name_ru" => "Москва"
                    "name_en" => "Moskva"
                    "iso" => "RU-MOW"
                    "timezone" => "Europe/Moscow"
                    "okato" => "45"
                    "auto" => "77, 97, 99, 177, 197, 199, 777"
                    "vk" => 0
                    "utc" => 3
              ]
              "country" => array:18 [
                    "id" => 185
                    "iso" => "RU"
                    "continent" => "EU"
                    "lat" => 60
                    "lon" => 100
                    "name_ru" => "Россия"
                    "name_en" => "Russia"
                    "timezone" => "Europe/Moscow"
                    "area" => 17100000
                    "population" => 140702000
                    "capital_id" => 524901
                    "capital_ru" => "Москва"
                    "capital_en" => "Moscow"
                    "cur_code" => "RUB"
                    "phone" => "7"
                    "neighbours" => "GE,CN,BY,UA,KZ,LV,PL,EE,LT,FI,MN,NO,AZ,KP"
                    "vk" => 1
                    "utc" => 3
              ]
              "error" => ""
              "request" => -2
              "created" => "2015.04.08"
              "timestamp" => 1428516249
        ];

Default Location

In the case that a location is not found the fallback location will be returned with the default parameter set to true. To set your own default change it in the configurations config/geoip.php

Services

Scriptix

  • Database Service: To use the database version of SypexGeo services download the SxGeoCityMax.dat from (vendor/scriptixru/sypexgeo/scr/Scriptixru/SypexGeo) and extract it to /database/sypexgeo/. And that's it.