diff --git a/.coveralls.yml b/.coveralls.yml
new file mode 100644
index 0000000..9160059
--- /dev/null
+++ b/.coveralls.yml
@@ -0,0 +1 @@
+service_name: travis-ci
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
deleted file mode 100644
index ddf8b8d..0000000
--- a/.github/workflows/test.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-name: Test
-on: [push, pull_request]
-jobs:
- test:
- name: Test PHP ${{ matrix.php-version }}
- runs-on: ubuntu-latest
- strategy:
- matrix:
- php-version: ['5.3', '5.4', '5.5', '5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0']
- steps:
- - name: Checkout
- uses: actions/checkout@v2
- - name: Setup PHP
- uses: shivammathur/setup-php@v2
- with:
- php-version: ${{ matrix.php-version }}
- - name: PHP Version
- run: php --version
- - name: Composer Version
- run: composer --version
- - name: Install Dependencies
- run: COMPOSER_MEMORY_LIMIT=-1 composer install
- - name: Run Tests
- run: vendor/bin/phpunit --coverage-clover ./coverage.xml
- - name: Upload Coverage
- if: ${{ matrix.php-version == '7.4' }}
- uses: codecov/codecov-action@v1
- with:
- file: ./coverage.xml
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index a2144a3..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-composer.lock
-composer.phar
-.phpunit.result.cache
-/vendor/
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..8bfb40e
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,26 @@
+language: php
+
+php:
+ - 5.3
+ - 5.4
+ - 5.5
+ - 5.6
+ - hhvm
+ - hhvm-nightly
+
+matrix:
+ allow_failures:
+ - php: hhvm-nightly
+
+install:
+ - composer install
+
+before_script:
+ - mkdir -p build/logs
+ - cd tests
+
+script:
+ - phpunit --colors --coverage-clover /home/travis/build/joshtronic/php-projecthoneypot/build/logs/clover.xml .
+
+after_success:
+ - php ../vendor/bin/coveralls --config ../.coveralls.yml -v
diff --git a/FUNDING.yml b/FUNDING.yml
deleted file mode 100644
index 9396c28..0000000
--- a/FUNDING.yml
+++ /dev/null
@@ -1 +0,0 @@
-github: joshtronic
diff --git a/README.md b/README.md
index be38912..d575478 100644
--- a/README.md
+++ b/README.md
@@ -3,18 +3,23 @@
[][travis]
[][coveralls]
[][packagist]
+[][gittip]
PHP Wrapper for Project Honey Pot. Compatible with PHP 5.3+ and HHVM.
## Installation
-The preferred installation method is via `composer`. From the root of your
-project simply run:
+The preferred installation method is via `composer`. First add the following
+to your `composer.json`
-```shell
-composer require "joshtronic/php-projecthoneypot:dev-master"
+```json
+"require": {
+ "joshtronic/php-projecthoneypot": "dev-master"
+}
```
+Then run `composer update`
+
## Usage
### Getting Started
diff --git a/composer.json b/composer.json
index ed5854c..e7d9e51 100644
--- a/composer.json
+++ b/composer.json
@@ -8,19 +8,16 @@
"license": "MIT",
"authors": [{
"name": "Josh Sherman",
- "email": "hello@joshtronic.com",
+ "email": "josh@gravityblvd.com",
"homepage": "http://joshtronic.com"
}],
- "require": {
+ "require-dev": {
"php": ">=5.3.0"
},
"require-dev": {
- "phpunit/phpunit": "^4.8.36 || ^9.0"
+ "satooshi/php-coveralls": "dev-master"
},
"autoload": {
"psr-4": {"joshtronic\\": "src/"}
- },
- "autoload-dev": {
- "psr-4": {"joshtronic\\Tests\\": "tests/"}
}
}
diff --git a/phpunit.xml b/phpunit.xml
deleted file mode 100644
index 82cbb00..0000000
--- a/phpunit.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
- tests
-
-
-
-
- ./src
-
-
-
diff --git a/src/ProjectHoneyPot.php b/src/ProjectHoneyPot.php
index a82b243..23cfb1b 100644
--- a/src/ProjectHoneyPot.php
+++ b/src/ProjectHoneyPot.php
@@ -8,8 +8,8 @@
* Licensed under The MIT License.
* Redistribution of these files must retain the above copyright notice.
*
- * @author Josh Sherman
- * @copyright Copyright 2012-2015, Josh Sherman
+ * @author Josh Sherman
+ * @copyright Copyright 2012-2014, Josh Sherman
* @license http://www.opensource.org/licenses/mit-license.html
* @link https://github.com/joshtronic/php-projecthoneypot
* @link http://www.projecthoneypot.org/httpbl_configure.php
@@ -37,9 +37,12 @@ class ProjectHoneyPot
*/
public function __construct($api_key)
{
- if (preg_match('/^[a-z]{12}$/', $api_key)) {
+ if (preg_match('/^[a-z]{12}$/', $api_key))
+ {
$this->api_key = $api_key;
- } else {
+ }
+ else
+ {
throw new \Exception('You must specify a valid API key.');
}
}
@@ -56,7 +59,8 @@ class ProjectHoneyPot
public function query($ip_address)
{
// Validates the IP format
- if (filter_var($ip_address, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_NO_PRIV_RANGE)) {
+ if (filter_var($ip_address, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_NO_PRIV_RANGE))
+ {
// Flips the script, err, IP address
$octets = explode('.', $ip_address);
krsort($octets);
@@ -66,10 +70,12 @@ class ProjectHoneyPot
$results = $this->dns_get_record($reversed_ip);
// Processes the results
- if (isset($results[0]['ip'])) {
+ if (isset($results[0]['ip']))
+ {
$results = explode('.', $results[0]['ip']);
- if ($results[0] == 127) {
+ if ($results[0] == 127)
+ {
$results = array(
'last_activity' => $results[1],
'threat_score' => $results[2],
@@ -77,31 +83,40 @@ class ProjectHoneyPot
);
// Creates an array of categories
- switch ($results['categories']) {
+ switch ($results['categories'])
+ {
case 0:
$categories = array('Search Engine');
break;
+
case 1:
$categories = array('Suspicious');
break;
+
case 2:
$categories = array('Harvester');
break;
+
case 3:
$categories = array('Suspicious', 'Harvester');
break;
+
case 4:
$categories = array('Comment Spammer');
break;
+
case 5:
$categories = array('Suspicious', 'Comment Spammer');
break;
+
case 6:
$categories = array('Harvester', 'Comment Spammer');
break;
+
case 7:
$categories = array('Suspicious', 'Harvester', 'Comment Spammer');
break;
+
default:
$categories = array('Reserved for Future Use');
break;
@@ -112,7 +127,9 @@ class ProjectHoneyPot
return $results;
}
}
- } else {
+ }
+ else
+ {
return array('error' => 'Invalid IP address.');
}
@@ -122,7 +139,7 @@ class ProjectHoneyPot
/**
* DNS Get Record
*
- * Wrapper method for dns_get_record() to allow for easy mocking of the
+ * Wrapper method for dns_get_record() to allow fo easy mocking of the
* results in our tests. Takes an already reversed IP address and does a
* DNS lookup for A records against the http:BL API.
*
diff --git a/tests/ProjectHoneyPotTest.php b/tests/ProjectHoneyPotTest.php
index 9c5e103..38128db 100644
--- a/tests/ProjectHoneyPotTest.php
+++ b/tests/ProjectHoneyPotTest.php
@@ -1,22 +1,21 @@
assertSame('You must specify a valid API key.', $e->getMessage());
- }
+ new joshtronic\ProjectHoneyPot('foo');
}
public function testInvalidIP()
{
- $object = new ProjectHoneyPot('foobarfoobar');
+ $object = new joshtronic\ProjectHoneyPot('foobarfoobar');
$this->assertEquals(
array('error' => 'Invalid IP address.'),
@@ -26,10 +25,11 @@ class ProjectHoneyPotTest extends TestCase
public function testMissingResults()
{
- $mock = $this->getMockBuilder('joshtronic\\ProjectHoneyPot')
- ->setConstructorArgs(array('foobarfoobar'))
- ->setMethods(array('dns_get_record'))
- ->getMock();
+ $mock = $this->getMock(
+ 'joshtronic\ProjectHoneyPot',
+ array('dns_get_record'),
+ array('foobarfoobar')
+ );
$mock->expects($this->once())
->method('dns_get_record')
@@ -40,10 +40,11 @@ class ProjectHoneyPotTest extends TestCase
public function testCategory0()
{
- $mock = $this->getMockBuilder('joshtronic\\ProjectHoneyPot')
- ->setConstructorArgs(array('foobarfoobar'))
- ->setMethods(array('dns_get_record'))
- ->getMock();
+ $mock = $this->getMock(
+ 'joshtronic\ProjectHoneyPot',
+ array('dns_get_record'),
+ array('foobarfoobar')
+ );
$mock->expects($this->once())
->method('dns_get_record')
@@ -56,10 +57,11 @@ class ProjectHoneyPotTest extends TestCase
public function testCategory1()
{
- $mock = $this->getMockBuilder('joshtronic\\ProjectHoneyPot')
- ->setConstructorArgs(array('foobarfoobar'))
- ->setMethods(array('dns_get_record'))
- ->getMock();
+ $mock = $this->getMock(
+ 'joshtronic\ProjectHoneyPot',
+ array('dns_get_record'),
+ array('foobarfoobar')
+ );
$mock->expects($this->once())
->method('dns_get_record')
@@ -72,10 +74,11 @@ class ProjectHoneyPotTest extends TestCase
public function testCategory2()
{
- $mock = $this->getMockBuilder('joshtronic\\ProjectHoneyPot')
- ->setConstructorArgs(array('foobarfoobar'))
- ->setMethods(array('dns_get_record'))
- ->getMock();
+ $mock = $this->getMock(
+ 'joshtronic\ProjectHoneyPot',
+ array('dns_get_record'),
+ array('foobarfoobar')
+ );
$mock->expects($this->once())
->method('dns_get_record')
@@ -88,10 +91,11 @@ class ProjectHoneyPotTest extends TestCase
public function testCategory3()
{
- $mock = $this->getMockBuilder('joshtronic\\ProjectHoneyPot')
- ->setConstructorArgs(array('foobarfoobar'))
- ->setMethods(array('dns_get_record'))
- ->getMock();
+ $mock = $this->getMock(
+ 'joshtronic\ProjectHoneyPot',
+ array('dns_get_record'),
+ array('foobarfoobar')
+ );
$mock->expects($this->once())
->method('dns_get_record')
@@ -107,10 +111,11 @@ class ProjectHoneyPotTest extends TestCase
public function testCategory4()
{
- $mock = $this->getMockBuilder('joshtronic\\ProjectHoneyPot')
- ->setConstructorArgs(array('foobarfoobar'))
- ->setMethods(array('dns_get_record'))
- ->getMock();
+ $mock = $this->getMock(
+ 'joshtronic\ProjectHoneyPot',
+ array('dns_get_record'),
+ array('foobarfoobar')
+ );
$mock->expects($this->once())
->method('dns_get_record')
@@ -126,10 +131,11 @@ class ProjectHoneyPotTest extends TestCase
public function testCategory5()
{
- $mock = $this->getMockBuilder('joshtronic\\ProjectHoneyPot')
- ->setConstructorArgs(array('foobarfoobar'))
- ->setMethods(array('dns_get_record'))
- ->getMock();
+ $mock = $this->getMock(
+ 'joshtronic\ProjectHoneyPot',
+ array('dns_get_record'),
+ array('foobarfoobar')
+ );
$mock->expects($this->once())
->method('dns_get_record')
@@ -145,10 +151,11 @@ class ProjectHoneyPotTest extends TestCase
public function testCategory6()
{
- $mock = $this->getMockBuilder('joshtronic\\ProjectHoneyPot')
- ->setConstructorArgs(array('foobarfoobar'))
- ->setMethods(array('dns_get_record'))
- ->getMock();
+ $mock = $this->getMock(
+ 'joshtronic\ProjectHoneyPot',
+ array('dns_get_record'),
+ array('foobarfoobar')
+ );
$mock->expects($this->once())
->method('dns_get_record')
@@ -164,10 +171,11 @@ class ProjectHoneyPotTest extends TestCase
public function testCategory7()
{
- $mock = $this->getMockBuilder('joshtronic\\ProjectHoneyPot')
- ->setConstructorArgs(array('foobarfoobar'))
- ->setMethods(array('dns_get_record'))
- ->getMock();
+ $mock = $this->getMock(
+ 'joshtronic\ProjectHoneyPot',
+ array('dns_get_record'),
+ array('foobarfoobar')
+ );
$mock->expects($this->once())
->method('dns_get_record')
@@ -183,10 +191,11 @@ class ProjectHoneyPotTest extends TestCase
public function testCategoryDefault()
{
- $mock = $this->getMockBuilder('joshtronic\\ProjectHoneyPot')
- ->setConstructorArgs(array('foobarfoobar'))
- ->setMethods(array('dns_get_record'))
- ->getMock();
+ $mock = $this->getMock(
+ 'joshtronic\ProjectHoneyPot',
+ array('dns_get_record'),
+ array('foobarfoobar')
+ );
$mock->expects($this->once())
->method('dns_get_record')
@@ -202,10 +211,11 @@ class ProjectHoneyPotTest extends TestCase
public function testWithout127()
{
- $mock = $this->getMockBuilder('joshtronic\\ProjectHoneyPot')
- ->setConstructorArgs(array('foobarfoobar'))
- ->setMethods(array('dns_get_record'))
- ->getMock();
+ $mock = $this->getMock(
+ 'joshtronic\ProjectHoneyPot',
+ array('dns_get_record'),
+ array('foobarfoobar')
+ );
$mock->expects($this->once())
->method('dns_get_record')
@@ -217,11 +227,9 @@ class ProjectHoneyPotTest extends TestCase
// Doesn't serve much purpose aside from helping achieve 100% coverage
public function testDnsGetRecord()
{
- $object = new ProjectHoneyPot('foobarfoobar');
+ $object = new joshtronic\ProjectHoneyPot('foobarfoobar');
- $result = $object->dns_get_record('1.2.3.4');
-
- $this->assertEquals(array(), $result);
+ $object->dns_get_record('1.2.3.4');
}
}