duc_cnzj / ip
A SDK for ip.
v1.1.9
2019-04-18 08:48 UTC
Requires
- guzzlehttp/guzzle: ^6.3
Requires (Dev)
- mockery/mockery: ~1.0
- phpunit/phpunit: ^6.0
README
A SDK for ip.
Support
- baidu api
- taobao api
- ali api
- tencent api
Installing
composer require duc_cnzj/ip
Usage
$client = new IpClient(); $client->setIp('xxx.xxx.xxx.xxx')->getCity(); $client->setIp('xxx.xxx.xxx.xxx')->getCountry(); $client->setIp('xxx.xxx.xxx.xxx')->getRegion(); $client->setIp('xxx.xxx.xxx.xxx')->getIp(); # or $client->setIp('xxx.xxx.xxx.xxx'); $client->getCity(); $client->city; # use Provider (baidu, taobao, ali) $client = new IpClient(); # if use baidu api, you need provide ak secret. $client->useProvider('baidu') ->setProviderConfig('baidu', ['ak' => 'xxxxxxxxxxxx']); # or $client->useProvider('baidu') ->setProviderConfig('baidu', 'xxxxxxxxxxxx'); # if use tencent api, you need provide ak secret. $client->useProvider('tencent') ->setProviderConfig('tencent', ['key' => 'xxxxxxxxxxxx']); # or $client->useProvider('tencent') ->setProviderConfig('tencent', 'xxxxxxxxxxxx'); # mutil set/get configs $client->setConfigs(['ali' => 'xxxxx', 'baidu' => 'xxxxx']); $client->getConfigs('ali', 'baidu'); # if use ali api, you need provide ak secret. $client->useProvider('ali') ->setProviderConfig('ali', ['app_code' => 'xxxxxxxxxxxx']); # if use taobao. $client->useProvider('taobao'); # default use all provider. if you want use all, pls set secret for each provider. $client->setProviderConfig('baidu', ['ak' => 'xxxxxxxxxxxx']); $client->setProviderConfig('ali', 'xxxxxxxxxxxx'); # package will try 3 times when provider response error. use try method to reset tryTimes. $client->setIp('xxx.xxx.xxx.xxx')->try(10); # in laravel $client = app('ip');
extra property
# baidu/ali/tencent return point_x and point_y, so you can: $client->useProvider('baidu') ->setProviderConfig('baidu', ['ak' => 'xxxxxxxxxxxx']); $client->useProvider('ali') ->setProviderConfig('ali', ['app_code' => 'xxxxxxxxxxxx']); $client->useProvider('tencent') ->setProviderConfig('tencent', 'xxxxxxxxxxxx'); $client->getPointX(); $client->getPointY(); # taobao return isp, so u can: $client->useProvider('taobao') ->setIp('xxx.xxx.xxx.xxx') ->getIsp();
when getXXX() false it will return null, u can use $client->getErrors()
get error info;
alias
$client->use('taobao', 'baidu'); # It will be executed in the order you passed it in # Equals to $client->useProvider('taobao', 'baidu');
other methods
$client->clearUse(); # will clear providers; # custom your instance. need implement DucCnzj\Ip\Imp\IpImp, Object or String. # if it dont need secret, pls set the third parameter false; $client->bind('taobao', $taobao); # set custom CacheStore. default is ArrayStore. need implement DucCnzj\Ip\Imp\CacheStoreImp; $client->setCacheStore($store);
License
MIT