首页 > 解决方案 > abuseipdb API2 使用 php-cURL 检查

问题描述

我正在尝试使用 abuseipdb API2 来检查我的电子邮件服务器的 IP 地址信誉 文档中给出的示例仅涵盖 shell curl

问题是我无法将 shell curls --data-urlencode "ipAddress=118.25.6.39" 转换为 php-cURL GEt 变量不起作用,不允许发布,不接受包含 IP 地址的标头> 全部失败:“ detail":"ip 地址字段为必填项。","status":422

My Code:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.abuseipdb.com/api/v2/check?'.urlencode("ipAddress=127.0.0.2") );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
$headers = array();
$headers[] = 'Key: <API-KEY>';
$headers[] = 'Accept: application/json';
$headers[] = 'Content-Type: application/x-www-form-urlencoded';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);

abuseipdb API2 Code:
curl -G https://api.abuseipdb.com/api/v2/check \
--data-urlencode "ipAddress=118.25.6.39" \
-d maxAgeInDays=90 \
-d verbose \
-H "Key: $YOUR_API_KEY" \
-H "Accept: application/json"

标签: php-curl

解决方案


这对我有用。

//Setup
$api_key = 'REPLACE_YOUR_KEY';
$abuseipdb_endponint = 'https://api.abuseipdb.com/api/v2/check';
$ipToCheck = 'REPLACE_IP';

$headers =  array(
    'Key: ' . $api_key,
    'Accept: application/json'
);

//cURL Work
$curlObj = curl_init();
curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curlObj, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curlObj, CURLOPT_URL, ($abuseipdb_endponint . '?ipAddress=' . $ipToCheck));            
curl_setopt($curlObj, CURLOPT_HTTPGET, 1);

$curl_response = curl_exec($curlObj);
print_r($curl_response);

curl_close($curlObj);

响应示例:

{"data":{"ipAddress":"79.127.127.253","isPublic":true,"ipVersion":4,"isWhitelisted":false,"abuseConfidenceScore":100,"countryCode":"IR","usageType":"Data Center\/Web Hosting\/Transit","isp":"AsiaTech Data Transfer Inc PLC","domain":"asiatech.ir","totalReports":80,"lastReportedAt":"2019-04-24T01:44:51+01:00"}}[Finished in 0.9s]

推荐阅读