abdullah-karam/usergeolocationapi

此包为您提供关于系统当前用户的许多信息

v1.0.0 2021-12-23 22:47 UTC

This package is auto-updated.

Last update: 2024-09-24 21:42:38 UTC


README

PHP (API) 中的地理位置 😍😍😍

此包帮助您通过IP地址了解当前用户的许多信息 😍😍😍

此包帮助您了解用户的当前语言、他浏览的来源国家、他所在国家的货币,以及他是否在使用VPN

GeoLocation

##使用方法

无需额外设置即可开始使用,一旦您通过Composer安装,就可以调用外观

<?php

use Abdullah\UserGeoLocation\GeoLocation;

$user_ip = request()->ip();

$userInfo = new GeoLocation($user_ip);

echo $userInfo->getUserIP();
result : 141.201.183.207

you can chain on object 
to get all information about user like this

dd($userInfo->getUserInfo());

result : Abdullah\UserGeoLocation\GeoLocation {#281 ▼
  -Service_url: "http://ip-api.com/php/"
  -USER_IP: "41.46.3.168"
  -Query: "status,message,continent,continentCode,country,countryCode,region,regionName,city,district,zip,lat,lon,timezone,offset,currency,isp,org,as,asname,reverse,mobile,proxy,hosting,query ◀"
  -USER_INFO: array:24 [▼
    "status" => "success"
    "continent" => "Africa"
    "continentCode" => "AF"
    "country" => "Egypt"
    "countryCode" => "EG"
    "region" => "C"
    "regionName" => "Cairo Governorate"
    "city" => "Cairo"
    "district" => ""
    "zip" => ""
    "lat" => 30.0**
    "lon" => 31.28**
    "timezone" => "Africa/Cairo"
    "offset" => 7200
    "currency" => "EGP"
    "isp" => "TE Data"
    "org" => ""
    "as" => "AS8452 TE-AS"
    "asname" => "TE-AS"
    "reverse" => "host-41.4**.3.1**.tedata.net"
    "mobile" => false
    "proxy" => false
    "hosting" => false
    "query" => "4*.4*.3.1**"
  ]
}

you can get spacific value from response 
like this 

dd($userInfo->getUserSpecificValue('country'));

result : "Egypt"

or you can give it array and its work too
like this 

dd($userInfo->getUserSpecificValue(['country','city']));

result : array:2 [▼
  "country" => "Egypt"
  "city" => "Cairo"
]

you can change defult Query info about user to what you need 
as you like you can publish and change Query 
and you can also use it like string or array
first publish config dont forget

and change it from : 

 return [
    'Query' => 'status,message,continent,continentCode,country,countryCode,region,regionName,city,district,zip,lat,lon,timezone,offset,currency,isp,org,as,asname,reverse,mobile,proxy,hosting,query',
    'ServiceUrl' => 'http://ip-api.com/php/',
 ];

to (if you want city only for every user):

 return [
    'Query' => 'city',
    'ServiceUrl' => 'http://ip-api.com/php/',
 ];
 
 or like this array : 
 
  return [
    'Query' => ['status','message'],
    'ServiceUrl' => 'http://ip-api.com/php/',
 ];

to publish : php artisan vendor:publish 
and choose package to publish it

pakcage also auto-discovery

## Contribute!!

You are very welcomed if You want to Contribute 🥳 on that, And this is How :

- Fork The Repo.📂
- Create Your new Solution in a Class with The existing Name + your Name + your email . 🚀

## License
MIT

** its for free usage you can fork it and enjoy **