我正在尝试使用abuseipdb API2来检查我的电子邮件服务器的IP地址信誉文档中给出的示例仅涵盖 shell curl
问题是我无法将外壳卷发 --data-urlencode "ipAddress=118.25.6.39" 转换为 php-cURLGEt 变量不起作用,不允许发布,不接受包含 IP 地址的标头>全部失败,并显示:"详细信息":"IP 地址字段是必需的。","状态":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"
这对
我有用。
//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]
您可以使用它来获取详细数据,所有这些都在HTTP GET查询中。
$key = "key";
$ip = "1.1.1.1";
$data = file_get_contents("https://api.abuseipdb.com/api/v2/check?ipAddress=$ip&maxAgeInDays=90&verbose&key=$key");
var_dump($data);