ipdata / api-client
ipdata.co 的 API 客户端
0.1.1
2021-08-08 14:25 UTC
Requires
- php: >= 7.2
- psr/http-client: ^1.0
- psr/http-factory: ^1.0
Requires (Dev)
- nyholm/psr7: ^1.2
- php-http/discovery: ^1.7
- php-http/httplug: ^2.0
- php-http/mock-client: ^1.3
- phpunit/phpunit: ^8.5
- symfony/http-client: ^5.0
This package is auto-updated.
Last update: 2024-09-08 21:22:55 UTC
README
与Ipdata.co通信的API客户端。
安装
composer require ipdata/api-client
客户端基于PSR标准构建。我们使用PSR-18作为HTTP客户端,PSR-17作为RequestFactory。这些需要传递给客户端构造函数。
PSR-17和PSR-18的示例包
composer require nyholm/psr7 symfony/http-client
use Ipdata\ApiClient\Ipdata; use Symfony\Component\HttpClient\Psr18Client; use Nyholm\Psr7\Factory\Psr17Factory; $httpClient = new Psr18Client(); $psr17Factory = new Psr17Factory(); $ipdata = new Ipdata('my_api_key', $httpClient, $psr17Factory);
如何使用
要发送地理编码请求,您只需提供您感兴趣的IP地址。
$data = $ipdata->lookup('69.78.70.144'); echo json_encode($data, JSON_PRETTY_PRINT);
输出将是API服务器的响应,并增加一个额外的状态字段。
{
"ip": "69.78.70.144",
"is_eu": false,
"city": null,
"region": null,
"region_code": null,
"country_name": "United States",
"country_code": "US",
"continent_name": "North America",
"continent_code": "NA",
"latitude": 37.751,
"longitude": -97.822,
"postal": null,
"calling_code": "1",
"flag": "https:\/\/ipdata.co\/flags\/us.png",
"emoji_flag": "\ud83c\uddfa\ud83c\uddf8",
"emoji_unicode": "U+1F1FA U+1F1F8",
"asn": {
"asn": "AS6167",
"name": "Cellco Partnership DBA Verizon Wireless",
"domain": "verizonwireless.com",
"route": "69.78.0.0\/16",
"type": "business"
},
"carrier": {
"name": "Verizon",
"mcc": "310",
"mnc": "004"
},
"languages": [
{
"name": "English",
"native": "English"
}
],
"currency": {
"name": "US Dollar",
"code": "USD",
"symbol": "$",
"native": "$",
"plural": "US dollars"
},
"time_zone": {
"name": "America\/Chicago",
"abbr": "CST",
"offset": "-0600",
"is_dst": false,
"current_time": "2020-01-25T06:14:37.081772-06:00"
},
"threat": {
"is_tor": false,
"is_proxy": false,
"is_anonymous": false,
"is_known_attacker": false,
"is_known_abuser": false,
"is_threat": false,
"is_bogon": false
},
"count": "6",
"status": 200
}
如果您不感兴趣于响应中的所有字段,您可以只查询您想要的字段。
$data = $ipdata->lookup('69.78.70.144', ['longitude', 'latitude', 'country_name']); echo json_encode($data, JSON_PRETTY_PRINT);
{
"longitude": -97.822,
"latitude": 37.751,
"country_name": "United States",
"status": 200
}
批量请求
如果您想同时查找多个IP,可以使用bulkLookup()函数。
$data = $ipdata->buildLookup(['1.1.1.1', '69.78.70.144'], ['longitude', 'latitude', 'country_name']); echo json_encode($data, JSON_PRETTY_PRINT);
{
"0": {
"longitude": 143.2104,
"latitude": -33.494,
"country_name": "Australia"
},
"1": {
"longitude": -97.822,
"latitude": 37.751,
"country_name": "United States"
},
"status": 200
}
可用字段
API返回的所有字段列表维护在响应字段。
错误
可能的错误列表可在状态代码中找到。