duc_cnzj / ip
ip 的 SDK。
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
ip 的 SDK。
支持
安装
composer require duc_cnzj/ip
用法
$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');
额外属性
# 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();
当 getXXX() 返回 false 时,它会返回 null,您可以使用 $client->getErrors()
获取错误信息;
别名
$client->use('taobao', 'baidu'); # It will be executed in the order you passed it in # Equals to $client->useProvider('taobao', 'baidu');
其他方法
$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);
许可证
MIT