mirror of
https://github.com/kristuff/abuseipdb
synced 2025-08-20 05:23:13 -07:00
v0.9.10
**Changed** - report categories methods related now static - `SilentApiHandler` class renamed `QuietApiHandler` **break change** - new static method `ApiResponse::createErrorResponse`
This commit is contained in:
parent
3c5c7155c2
commit
77c2857eb8
8 changed files with 63 additions and 56 deletions
|
@ -32,7 +32,7 @@ Deploy with composer:
|
|||
```json
|
||||
...
|
||||
"require": {
|
||||
"kristuff/abuseipdb": ">=0.9.9-stable"
|
||||
"kristuff/abuseipdb": ">=0.9.10-stable"
|
||||
},
|
||||
```
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
"name": "kristuff/abuseipdb",
|
||||
"description": "A PHP wrapper for AbuseIPDB API v2",
|
||||
"type": "library",
|
||||
"keywords": ["abuseIPDB", "API"],
|
||||
"license": "MIT",
|
||||
"authors": [
|
||||
{
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*
|
||||
* @version 0.9.9
|
||||
* @version 0.9.10
|
||||
* @copyright 2020-2021 Kristuff
|
||||
*/
|
||||
|
||||
|
@ -47,9 +47,10 @@ abstract class ApiBase
|
|||
* shorname, id (string), long name
|
||||
* last paramter is false when the category cant' be used alone
|
||||
*
|
||||
* @static
|
||||
* @var array
|
||||
*/
|
||||
protected $aipdbApiCategories = [
|
||||
protected static $aipdbApiCategories = [
|
||||
|
||||
// Altering DNS records resulting in improper redirection.
|
||||
['dns-c' , '1', 'DNS Compromise', true],
|
||||
|
@ -134,25 +135,27 @@ abstract class ApiBase
|
|||
* Get the list of report categories
|
||||
*
|
||||
* @access public
|
||||
* @static
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getCategories()
|
||||
public static function getCategories(): array
|
||||
{
|
||||
return $this->aipdbApiCategories;
|
||||
return self::$aipdbApiCategories;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the category id corresponding to given name
|
||||
*
|
||||
* @access public
|
||||
* @param string $categoryName The report categoriy name
|
||||
* @static
|
||||
* @param string $categoryName The report category name
|
||||
*
|
||||
* @return string|bool The category id in string format if found, otherwise false
|
||||
*/
|
||||
public function getCategoryIdbyName(string $categoryName)
|
||||
public static function getCategoryIdbyName(string $categoryName)
|
||||
{
|
||||
foreach ($this->aipdbApiCategories as $cat){
|
||||
foreach (self::$aipdbApiCategories as $cat){
|
||||
if ($cat[0] === $categoryName) {
|
||||
return $cat;
|
||||
}
|
||||
|
@ -166,13 +169,14 @@ abstract class ApiBase
|
|||
* Get the category name corresponding to given id
|
||||
*
|
||||
* @access public
|
||||
* @static
|
||||
* @param string $categoryId The report category id
|
||||
*
|
||||
* @return string|bool The category name if found, otherwise false
|
||||
*/
|
||||
public function getCategoryNameById(string $categoryId)
|
||||
public static function getCategoryNameById(string $categoryId)
|
||||
{
|
||||
foreach ($this->aipdbApiCategories as $cat){
|
||||
foreach (self::$aipdbApiCategories as $cat){
|
||||
if ($cat[1] === $categoryId) {
|
||||
return $cat;
|
||||
}
|
||||
|
@ -186,15 +190,16 @@ abstract class ApiBase
|
|||
* Get the index of category corresponding to given value
|
||||
*
|
||||
* @access protected
|
||||
* @static
|
||||
* @param string $value The report category id or name
|
||||
* @param string $index The index in value array
|
||||
*
|
||||
* @return int|bool The category index if found, otherwise false
|
||||
*/
|
||||
protected function getCategoryIndex(string $value, int $index)
|
||||
protected static function getCategoryIndex(string $value, int $index)
|
||||
{
|
||||
$i = 0;
|
||||
foreach ($this->aipdbApiCategories as $cat){
|
||||
foreach (self::$aipdbApiCategories as $cat){
|
||||
if ($cat[$index] === $value) {
|
||||
return $i;
|
||||
}
|
||||
|
@ -229,7 +234,7 @@ abstract class ApiBase
|
|||
foreach ($cats as $cat) {
|
||||
|
||||
// get index on our array of categories
|
||||
$catIndex = is_numeric($cat) ? $this->getCategoryIndex($cat, 1) : $this->getCategoryIndex($cat, 0);
|
||||
$catIndex = is_numeric($cat) ? self::getCategoryIndex($cat, 1) : self::getCategoryIndex($cat, 0);
|
||||
|
||||
// check if found
|
||||
if ($catIndex === false ){
|
||||
|
@ -237,13 +242,13 @@ abstract class ApiBase
|
|||
}
|
||||
|
||||
// get Id
|
||||
$catId = $this->aipdbApiCategories[$catIndex][1];
|
||||
$catId = self::$aipdbApiCategories[$catIndex][1];
|
||||
|
||||
// need another ?
|
||||
if ($needAnother !== false){
|
||||
|
||||
// is a standalone cat ?
|
||||
if ($this->aipdbApiCategories[$catIndex][3] === false) {
|
||||
if (self::$aipdbApiCategories[$catIndex][3] === false) {
|
||||
$needAnother = true;
|
||||
|
||||
} else {
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*
|
||||
* @version 0.9.9
|
||||
* @version 0.9.10
|
||||
* @copyright 2020-2021 Kristuff
|
||||
*/
|
||||
|
||||
|
@ -33,9 +33,9 @@ class ApiHandler extends ApiBase
|
|||
use CurlTrait;
|
||||
|
||||
/**
|
||||
* @var string $version
|
||||
* @var string
|
||||
*/
|
||||
const VERSION = 'v0.9.9';
|
||||
const VERSION = 'v0.9.10';
|
||||
|
||||
/**
|
||||
* The ips to remove from report messages
|
||||
|
@ -314,7 +314,7 @@ class ApiHandler extends ApiBase
|
|||
* @param bool $plainText True to get the response in plaintext list. Default is false
|
||||
* @param int $confidenceMinimum The abuse confidence score minimum (subscribers feature). Default is 100.
|
||||
* The confidence minimum must be between 25 and 100.
|
||||
* This parameter is subscriber feature (not honored otherwise).
|
||||
* This parameter is a subscriber feature (not honored otherwise).
|
||||
*
|
||||
* @return ApiResponse
|
||||
* @throws \RuntimeException
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*
|
||||
* @version 0.9.9
|
||||
* @version 0.9.10
|
||||
* @copyright 2020-2021 Kristuff
|
||||
*/
|
||||
|
||||
|
@ -50,7 +50,7 @@ class ApiResponse
|
|||
public function __construct(?string $plaintext = null)
|
||||
{
|
||||
$this->curlResponse = $plaintext;
|
||||
$this->decodedResponse = json_decode($plaintext, false);
|
||||
$this->decodedResponse = !empty($plaintext) ? json_decode($plaintext, false) : null;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -112,4 +112,27 @@ class ApiResponse
|
|||
{
|
||||
return ($this->decodedResponse && $this->decodedResponse->errors) ? $this->decodedResponse->errors : [];
|
||||
}
|
||||
|
||||
/**
|
||||
* Get an internal error message in an ApiResponse object
|
||||
*
|
||||
* @access public
|
||||
* @static
|
||||
* @param string $message The error message
|
||||
*
|
||||
* @return ApiResponse
|
||||
*/
|
||||
public static function createErrorResponse(string $message): ApiResponse
|
||||
{
|
||||
$response = [
|
||||
"errors" => [
|
||||
[
|
||||
"title" => "Internal Error",
|
||||
"detail" => $message
|
||||
]
|
||||
]
|
||||
];
|
||||
|
||||
return new ApiResponse(json_encode($response));
|
||||
}
|
||||
}
|
|
@ -14,7 +14,7 @@
|
|||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*
|
||||
* @version 0.9.9
|
||||
* @version 0.9.10
|
||||
* @copyright 2020-2021 Kristuff
|
||||
*/
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*
|
||||
* @version 0.9.9
|
||||
* @version 0.9.10
|
||||
* @copyright 2020-2021 Kristuff
|
||||
*/
|
||||
|
||||
|
|
|
@ -14,43 +14,21 @@
|
|||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*
|
||||
* @version 0.9.9
|
||||
* @version 0.9.10
|
||||
* @copyright 2020-2021 Kristuff
|
||||
*/
|
||||
|
||||
namespace Kristuff\AbuseIPDB;
|
||||
|
||||
/**
|
||||
* Class SilentApiHandler
|
||||
* Class QuietApiHandler
|
||||
*
|
||||
* Overwrite ApiHandler with Exception handling
|
||||
* Instead of Exception, all method return an ApiResponse that may
|
||||
* Instead of Exception, all methods return an ApiResponse that may
|
||||
* contains errors from the AbuseIPDB API, or internal errors
|
||||
*/
|
||||
class SilentApiHandler extends ApiHandler
|
||||
class QuietApiHandler extends ApiHandler
|
||||
{
|
||||
/**
|
||||
* Get an internal error message in an ApiResponse object
|
||||
*
|
||||
* @access public
|
||||
* @param string $message The error message
|
||||
*
|
||||
* @return ApiResponse
|
||||
*/
|
||||
public function getErrorResponse(string $message): ApiResponse
|
||||
{
|
||||
$response = [
|
||||
"errors" => [
|
||||
[
|
||||
"title" => "Internal Error",
|
||||
"detail" => $message
|
||||
]
|
||||
]
|
||||
];
|
||||
|
||||
return new ApiResponse(json_encode($response));
|
||||
}
|
||||
|
||||
/**
|
||||
* Performs a 'report' api request, with Exception handling
|
||||
*
|
||||
|
@ -66,7 +44,7 @@ class SilentApiHandler extends ApiHandler
|
|||
try {
|
||||
return parent::report($ip,$categories,$message);
|
||||
} catch (\Exception $e) {
|
||||
return $this->getErrorResponse($e->getMessage());
|
||||
return ApiResponse::createErrorResponse($e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -83,7 +61,7 @@ class SilentApiHandler extends ApiHandler
|
|||
try {
|
||||
return parent::bulkReport($filePath);
|
||||
} catch (\Exception $e) {
|
||||
return $this->getErrorResponse($e->getMessage());
|
||||
return ApiResponse::createErrorResponse($e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -100,7 +78,7 @@ class SilentApiHandler extends ApiHandler
|
|||
try {
|
||||
return parent::clearAddress($ip);
|
||||
} catch (\Exception $e) {
|
||||
return $this->getErrorResponse($e->getMessage());
|
||||
return ApiResponse::createErrorResponse($e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -119,7 +97,7 @@ class SilentApiHandler extends ApiHandler
|
|||
try {
|
||||
return parent::check($ip, $maxAgeInDays, $verbose);
|
||||
} catch (\Exception $e) {
|
||||
return $this->getErrorResponse($e->getMessage());
|
||||
return ApiResponse::createErrorResponse($e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -137,7 +115,7 @@ class SilentApiHandler extends ApiHandler
|
|||
try {
|
||||
return parent::checkBlock($network, $maxAgeInDays);
|
||||
} catch (\Exception $e) {
|
||||
return $this->getErrorResponse($e->getMessage());
|
||||
return ApiResponse::createErrorResponse($e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -149,7 +127,7 @@ class SilentApiHandler extends ApiHandler
|
|||
* @param bool $plainText True to get the response in plaintext list. Default is false
|
||||
* @param int $confidenceMinimum The abuse confidence score minimum (subscribers feature). Default is 100.
|
||||
* The confidence minimum must be between 25 and 100.
|
||||
* This parameter is subscriber feature (not honored otherwise).
|
||||
* This parameter is a subscriber feature (not honored otherwise).
|
||||
*
|
||||
* @return ApiResponse
|
||||
*/
|
||||
|
@ -158,7 +136,7 @@ class SilentApiHandler extends ApiHandler
|
|||
try {
|
||||
return parent::blacklist($limit, $plainText, $confidenceMinimum);
|
||||
} catch (\Exception $e) {
|
||||
return $this->getErrorResponse($e->getMessage());
|
||||
return ApiResponse::createErrorResponse($e->getMessage());
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue