php-curl - 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"
解决方案
这对我有用。
//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]
推荐阅读
- vb.net - 访问启动文件夹被拒绝 vb .net,我试图将我的应用程序复制到启动文件夹,但它说访问被拒绝
- python - 使用循环绘制多元分组条形图
- python - Python:requests.exceptions.ConnectionError:HTTPSConnectionPool
- azure-sql-database - 我无法使用查询编辑器访问 Azure SQL 数据库。但是我可以使用具有相同 SQL Server 身份验证登录名和密码的 SSMS 访问它
- jasmine - beforeEach 如何在没有完成的情况下在茉莉花中工作
- java - Spring JsonIgnore 注释在 Map 中不起作用
- python - PyQt5 应用程序崩溃
- angular - 在 Angular 验证器中链接两个字段
- verilog - 如何防止ModelSIM在仿真过程中停止?
- javascript - 从 jquery 中检索数据以将其传递到 a-frame