diff --git a/LICENSE b/LICENSE index 933b544..007d465 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2020-2022 kristuff +Copyright (c) 2020-2021 kristuff Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index d7946f1..bcb3ae3 100644 --- a/README.md +++ b/README.md @@ -16,8 +16,7 @@ Features - Single IP report request **✓** - Bulk report request (send `csv` file) **✓** - Clear IP address request (remove your own reports) **✓** -- Auto cleaning report comments from sensitive data (email, custom ip/domain names list) **✓** -- Define timeout for cURL internal requests **✓** +- Auto cleaning report comments from sensitive data (email, custom ip/domain names list) **✓** Requirements ------------ @@ -33,7 +32,7 @@ Deploy with composer: ```json ... "require": { - "kristuff/abuseipdb": "^1.1-stable" + "kristuff/abuseipdb": "^0.9.12-stable" }, ``` @@ -50,7 +49,7 @@ License The MIT License (MIT) -Copyright (c) 2020-2022 Kristuff +Copyright (c) 2020-2021 Kristuff Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/lib/ApiBase.php b/lib/ApiBase.php index 9adf14c..366d606 100644 --- a/lib/ApiBase.php +++ b/lib/ApiBase.php @@ -1,11 +1,12 @@ @@ -13,8 +14,8 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. * - * @version 1.1 - * @copyright 2020-2022 Kristuff + * @version 0.9.12 + * @copyright 2020-2021 Kristuff */ namespace Kristuff\AbuseIPDB; diff --git a/lib/ApiHandler.php b/lib/ApiHandler.php index 2cee02c..6b800bd 100644 --- a/lib/ApiHandler.php +++ b/lib/ApiHandler.php @@ -1,11 +1,12 @@ @@ -13,8 +14,8 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. * - * @version 1.1 - * @copyright 2020-2022 Kristuff + * @version 0.9.12 + * @copyright 2020-2021 Kristuff */ namespace Kristuff\AbuseIPDB; @@ -34,7 +35,7 @@ class ApiHandler extends ApiBase /** * @var string */ - const VERSION = 'v1.1'; + const VERSION = 'v0.9.12'; /** * The ips to remove from report messages @@ -45,46 +46,18 @@ class ApiHandler extends ApiBase */ protected $selfIps = []; - /** - * The maximum number of milliseconds to allow cURL functions to execute. If libcurl is - * built to use the standard system name resolver, that portion of the connect will still - * use full-second resolution for timeouts with a minimum timeout allowed of one second. - * - * @access protected - * @var int - */ - protected $timeout = 0; - /** * Constructor * * @access public * @param string $apiKey The AbuseIPDB api key * @param array $myIps The Ips/domain name you don't want to display in report messages - * @param int $timeout The maximum number of milliseconds to allow internal cURL functions - * to execute. Default is 0, no timeout * */ - public function __construct(string $apiKey, array $myIps = [], int $timeout = 0) + public function __construct(string $apiKey, array $myIps = []) { $this->aipdbApiKey = $apiKey; $this->selfIps = $myIps; - $this->timeout = $timeout; - } - - /** - * Sets the cURL timeout (apply then to any API request). Overwrites the value passed in - * constructor, useful when performing multiple queries with same handler but different timeout. - * - * @access public - * @param int $timeout The maximum number of milliseconds to allow internal cURL functions - * to execute. - * - * @return void - */ - public function setTimeout(int $timeout): void - { - $this->timeout = $timeout; } /** @@ -99,7 +72,6 @@ class ApiHandler extends ApiBase return array( 'apiKey' => $this->aipdbApiKey, 'selfIps' => $this->selfIps, - 'timeout' => $this->timeout, ); } @@ -188,7 +160,6 @@ class ApiHandler extends ApiBase * @return ApiResponse * @throws \RuntimeException * @throws \InvalidArgumentException - * @throws InvalidPermissionException */ public function bulkReport(string $filePath): ApiResponse { @@ -385,10 +356,9 @@ class ApiHandler extends ApiBase */ protected function apiRequest(string $path, array $data, string $method = 'GET', string $csvFilePath = ''): ApiResponse { - $curlErrorNumber = -1; // will be used later to check curl execution - $curlErrorMessage = ''; - $url = $this->aipdbApiEndpoint . $path; // api url - + // set api url + $url = $this->aipdbApiEndpoint . $path; + // set the wanted format, JSON (required to prevent having full html page on error) // and the AbuseIPDB API Key as a header $headers = [ @@ -416,35 +386,17 @@ class ApiHandler extends ApiBase $url .= '?' . http_build_query($data); } - // set url and options + // set the url to call $this->setCurlOption($ch, CURLOPT_URL, $url); $this->setCurlOption($ch, CURLOPT_RETURNTRANSFER, 1); $this->setCurlOption($ch, CURLOPT_HTTPHEADER, $headers); - - /** - * set timeout - * - * @see https://curl.se/libcurl/c/CURLOPT_TIMEOUT_MS.html - * @see https://curl.se/libcurl/c/CURLOPT_CONNECTTIMEOUT_MS.html - * If libcurl is built to use the standard system name resolver, that portion of the transfer - * will still use full-second resolution for timeouts with a minimum timeout allowed of one second. - * In unix-like systems, this might cause signals to be used unless CURLOPT_NOSIGNAL is set. - */ - $this->setCurlOption($ch, CURLOPT_NOSIGNAL, 1); - $this->setCurlOption($ch, CURLOPT_TIMEOUT_MS, $this->timeout); - + // execute curl call $result = curl_exec($ch); - $curlErrorNumber = curl_errno($ch); - $curlErrorMessage = curl_error($ch); - + // close connection curl_close($ch); - - if ($curlErrorNumber !== 0){ - throw new \RuntimeException($curlErrorMessage); - } - + return new ApiResponse($result !== false ? $result : ''); } @@ -469,8 +421,8 @@ class ApiHandler extends ApiBase } // If we're reporting spam, further munge any email addresses in the report - $emailPattern = "/\b[A-Z0-9!#$%&'*`\/?^{|}~=+_.-]+@[A-Z0-9.-]+\b/i"; - $message = preg_replace($emailPattern, "*", $message); + $emailPattern = "/[^@\s]*@[^@\s]*\.[^@\s]*/"; + $message = preg_replace($emailPattern, "*", $message); // Make sure message is less 1024 chars return substr($message, 0, 1024); diff --git a/lib/ApiResponse.php b/lib/ApiResponse.php index 3e451f0..0a7b50a 100644 --- a/lib/ApiResponse.php +++ b/lib/ApiResponse.php @@ -1,11 +1,12 @@ @@ -13,8 +14,8 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. * - * @version 1.1 - * @copyright 2020-2022 Kristuff + * @version 0.9.12 + * @copyright 2020-2021 Kristuff */ namespace Kristuff\AbuseIPDB; @@ -109,7 +110,7 @@ class ApiResponse */ public function errors(): array { - return ($this->decodedResponse && property_exists($this->decodedResponse, 'errors')) ? $this->decodedResponse->errors : []; + return ($this->decodedResponse && $this->decodedResponse->errors) ? $this->decodedResponse->errors : []; } /** diff --git a/lib/CurlTrait.php b/lib/CurlTrait.php index 667fdda..683c5e5 100644 --- a/lib/CurlTrait.php +++ b/lib/CurlTrait.php @@ -1,11 +1,12 @@ @@ -13,8 +14,8 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. * - * @version 1.1 - * @copyright 2020-2022 Kristuff + * @version 0.9.12 + * @copyright 2020-2021 Kristuff */ namespace Kristuff\AbuseIPDB; diff --git a/lib/InvalidPermissionException.php b/lib/InvalidPermissionException.php index 8ec9bc1..9183df9 100644 --- a/lib/InvalidPermissionException.php +++ b/lib/InvalidPermissionException.php @@ -1,11 +1,12 @@ @@ -13,8 +14,8 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. * - * @version 1.1 - * @copyright 2020-2022 Kristuff + * @version 0.9.12 + * @copyright 2020-2021 Kristuff */ namespace Kristuff\AbuseIPDB; diff --git a/lib/QuietApiHandler.php b/lib/QuietApiHandler.php index 632b140..8995c33 100644 --- a/lib/QuietApiHandler.php +++ b/lib/QuietApiHandler.php @@ -1,11 +1,12 @@ @@ -13,8 +14,8 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. * - * @version 1.1 - * @copyright 2020-2022 Kristuff + * @version 0.9.12 + * @copyright 2020-2021 Kristuff */ namespace Kristuff\AbuseIPDB;