Skip to content

Commit

Permalink
Chore: prepare 2.0.0 release.
Browse files Browse the repository at this point in the history
  • Loading branch information
Alexander Krasnoyarov committed Oct 28, 2016
1 parent 225d9ba commit 5a85afa
Show file tree
Hide file tree
Showing 30 changed files with 1,694 additions and 138 deletions.
12 changes: 10 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,15 @@
# Head
# 2.0.0 - 2016-10-28

- Added: `Wotbox` webcrawler verifier.
- Added: `Odnoklassniki LLC` webcrawler verifier.
- Added: `Turnitin LLC` webcrawler verifier.
- Added: `Wotbox Team` webcrawler verifier.
- Added: `Validator.w3.org` webcraler verifiers.
- Added: `IBM Germany Research And Development GmbH` webcrawler verifier.
- Added: `InactiveVerifier` for inactive webcrawlers.
- Changed: rename all verifier by official company name.
- Changed: remove suffix `Webcrawler` from all webcrawler verifiers.
- Chore: refactoring `Range` helper. Use `ip` first, second `allowedRange`.
- Fixed: best signature for `User-agent` webcrawlers.

# 1.2.0 - 2016-10-27

Expand Down
2 changes: 1 addition & 1 deletion src/DNS/HostVerifier.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

class HostVerifier
{
public static function verify($host, $allowedHostNames)
public static function verify($host, array $allowedHostNames)
{
return !!array_filter($allowedHostNames, function ($validHost) use ($host) {
return StringHelper::endsWith($validHost, $host) !== false;
Expand Down
2 changes: 1 addition & 1 deletion src/DNS/ReverseVerifier.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

class ReverseVerifier
{
public static function verify($ip, $allowedHostNames)
public static function verify($ip, array $allowedHostNames)
{
$host = gethostbyaddr($ip);
$ipAfterLookup = gethostbyname($host);
Expand Down
2 changes: 1 addition & 1 deletion src/Helper/Range.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

class Range
{
public static function inRange($ip, $ranges = [])
public static function inRange($ip, array $ranges = [])
{
$verified = false;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<?php
namespace WebcrawlerVerifier\Webcrawler;

use WebcrawlerVerifier\DNS\ReverseVerifier as ReverseVerifier;
use WebcrawlerVerifier\DNS\ReverseVerifier;

class AppleWebcrawlerVerifier implements WebcrawlerVerifierInterface
class AppleIncVerifier implements VerifierInterface
{
protected $allowedHostNames = ['apple.com'];

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<?php
namespace WebcrawlerVerifier\Webcrawler;

use WebcrawlerVerifier\DNS\ReverseVerifier as ReverseVerifier;
use WebcrawlerVerifier\DNS\HostVerifier;

class BaiduWebcrawlerVerifier implements WebcrawlerVerifierInterface
class BaiduVerifier implements VerifierInterface
{
protected $allowedHostNames = ['baidu.com', 'baidu.jp'];

Expand All @@ -15,6 +15,6 @@ class BaiduWebcrawlerVerifier implements WebcrawlerVerifierInterface
*/
public function verify($ip)
{
return ReverseVerifier::verify($ip, $this->allowedHostNames);
return HostVerifier::verify(gethostbyaddr($ip), $this->allowedHostNames);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

use WebcrawlerVerifier\DNS\HostVerifier;

class BegunWebcrawlerVerifier implements WebcrawlerVerifierInterface
class BegunVerifier implements VerifierInterface
{
protected $allowedHostNames = ['begun.ru'];

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<?php
namespace WebcrawlerVerifier\Webcrawler;

use WebcrawlerVerifier\DNS\ReverseVerifier as ReverseVerifier;
use WebcrawlerVerifier\DNS\ReverseVerifier;

class ExaleadWebcrawlerVerifier implements WebcrawlerVerifierInterface
class DassaultSystemesVerifier implements VerifierInterface
{
protected $allowedHostNames = ['exabot.com'];

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<?php
namespace WebcrawlerVerifier\Webcrawler;

use WebcrawlerVerifier\DNS\ReverseVerifier as ReverseVerifier;
use WebcrawlerVerifier\DNS\ReverseVerifier;

class DeusuWebcrawlerVerifier implements WebcrawlerVerifierInterface
class DeusuVerifier implements VerifierInterface
{
protected $allowedHostNames = ['deusu.de', 'mschoebel.de'];

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<?php
namespace WebcrawlerVerifier\Webcrawler;

use WebcrawlerVerifier\DNS\ReverseVerifier as ReverseVerifier;
use WebcrawlerVerifier\DNS\ReverseVerifier;

class GoogleWebcrawlerVerifier implements WebcrawlerVerifierInterface
class GoogleIncVerifier implements VerifierInterface
{
protected $allowedHostNames = ['google.com', 'googlebot.com'];

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

use WebcrawlerVerifier\Helper\Range;

class GrapeshotWebcrawlerVerifier implements WebcrawlerVerifierInterface
class GrapeshotLimitedVerifier implements VerifierInterface
{
protected $allowedRanges = ['89.145.95.0/24'];

Expand Down
29 changes: 29 additions & 0 deletions src/Webcrawler/IBMGermanyResearchAndDevelopmentGmbHVerifier.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<?php
namespace WebcrawlerVerifier\Webcrawler;

use WebcrawlerVerifier\Helper\Range;

class IBMGermanyResearchAndDevelopmentGmbHVerifier implements VerifierInterface
{
protected $allowedRanges = [
'206.253.224.*',
'194.153.113.*',
'206.253.225.*',
'206.253.226.*',
'2001:1be0:1000:160:0:0:0:0/64',
'2001:1be0:1000:167:0:0:0:0/64',
'2001:1be0:1000:168:0:0:0:0/64',
'2001:1be0:1000:169:0:0:0:0/64'
];

/**
* Checks whether the given IP address really belongs to a valid host or not
*
* @param $ip string the IP address to check
* @return bool true if the given IP belongs to any of the valid hosts, otherwise false
*/
public function verify($ip)
{
return Range::inRange($ip, $this->allowedRanges);
}
}
16 changes: 16 additions & 0 deletions src/Webcrawler/InactiveVerifier.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?php
namespace WebcrawlerVerifier\Webcrawler;

class InactiveVerifier implements VerifierInterface
{
/**
* Checks whether the given IP address really belongs to a valid host or not
*
* @param $ip string the IP address to check
* @return bool true if the given IP belongs to any of the valid hosts, otherwise false
*/
public function verify($ip)
{
return false;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

use WebcrawlerVerifier\Helper\Range;

class SteelerWebcrawlerVerifier implements WebcrawlerVerifierInterface
class KitsuregawaLaboratoryTheUniversityOfTokyoVerifier implements VerifierInterface
{
protected $allowedRanges = ['157.82.156.129-157.82.156.254'];

Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
<?php
namespace WebcrawlerVerifier\Webcrawler;

use WebcrawlerVerifier\DNS\ReverseVerifier as ReverseVerifier;
use WebcrawlerVerifier\DNS\ReverseVerifier;

class SeznamWebcrawlerVerifier implements WebcrawlerVerifierInterface
class LinkedInIncVerifier implements VerifierInterface
{
protected $allowedHostNames = ['seznam.cz'];
protected $allowedHostNames = ['linkedin.com'];

/**
* Checks whether the given IP address really belongs to a valid host or not
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<?php
namespace WebcrawlerVerifier\Webcrawler;

use WebcrawlerVerifier\DNS\ReverseVerifier as ReverseVerifier;
use WebcrawlerVerifier\DNS\ReverseVerifier;

class MailRUWebcrawlerVerifier implements WebcrawlerVerifierInterface
class MailRuGroupVerifier implements VerifierInterface
{
protected $allowedHostNames = ['mail.ru'];

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<?php
namespace WebcrawlerVerifier\Webcrawler;

use WebcrawlerVerifier\DNS\ReverseVerifier as ReverseVerifier;
use WebcrawlerVerifier\DNS\ReverseVerifier;

class BingWebcrawlerVerifier implements WebcrawlerVerifierInterface
class MicrosoftCorporationVerifier implements VerifierInterface
{
protected $allowedHostNames = ['search.msn.com'];

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<?php
namespace WebcrawlerVerifier\Webcrawler;

use WebcrawlerVerifier\DNS\ReverseVerifier as ReverseVerifier;
use WebcrawlerVerifier\DNS\ReverseVerifier;

class SputnikWebcrawlerVerifier implements WebcrawlerVerifierInterface
class OJSCRostelecomVerifier implements VerifierInterface
{
protected $allowedHostNames = ['sputnik.ru'];

Expand Down
20 changes: 20 additions & 0 deletions src/Webcrawler/OdnoklassnikiLLCVerifier.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<?php
namespace WebcrawlerVerifier\Webcrawler;

use WebcrawlerVerifier\DNS\HostVerifier;

class OdnoklassnikiLLCVerifier implements VerifierInterface
{
protected $allowedHostNames = ['odnoklassniki.ru'];

/**
* Checks whether the given IP address really belongs to a valid host or not
*
* @param $ip string the IP address to check
* @return bool true if the given IP belongs to any of the valid hosts, otherwise false
*/
public function verify($ip)
{
return HostVerifier::verify(gethostbyaddr($ip), $this->allowedHostNames);
}
}
20 changes: 20 additions & 0 deletions src/Webcrawler/SeznamCzASVerifier.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<?php
namespace WebcrawlerVerifier\Webcrawler;

use WebcrawlerVerifier\DNS\HostVerifier;

class SeznamCzASVerifier implements VerifierInterface
{
protected $allowedHostNames = ['seznam.cz'];

/**
* Checks whether the given IP address really belongs to a valid host or not
*
* @param $ip string the IP address to check
* @return bool true if the given IP belongs to any of the valid hosts, otherwise false
*/
public function verify($ip)
{
return HostVerifier::verify(gethostbyaddr($ip), $this->allowedHostNames);
}
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<?php
namespace WebcrawlerVerifier\Webcrawler;

use WebcrawlerVerifier\DNS\ReverseVerifier as ReverseVerifier;
use WebcrawlerVerifier\DNS\ReverseVerifier;

class IstellaWebcrawlerVerifier implements WebcrawlerVerifierInterface
class TiscaliItaliaSpaVerifier implements VerifierInterface
{
protected $allowedHostNames = ['istella.it'];

Expand Down
24 changes: 24 additions & 0 deletions src/Webcrawler/TurnitinLLCVerifier.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<?php
namespace WebcrawlerVerifier\Webcrawler;

use WebcrawlerVerifier\Helper\Range;

class TurnitinLLCVerifier implements VerifierInterface
{
// https://www.turnitin.com/robot/crawlerinfo.html
protected $allowedRanges = [
'38.111.147.69-38.111.147.94',
'199.47.82.133-199.47.82.254'
];

/**
* Checks whether the given IP address really belongs to a valid host or not
*
* @param $ip string the IP address to check
* @return bool true if the given IP belongs to any of the valid hosts, otherwise false
*/
public function verify($ip)
{
return Range::inRange($ip, $this->allowedRanges);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

use WebcrawlerVerifier\Helper\Range;

class TwitterWebcrawlerVerifier implements WebcrawlerVerifierInterface
class TwitterIncVerifier implements VerifierInterface
{
// https://dev.twitter.com/cards/troubleshooting
protected $allowedRanges = ['199.16.156.0/22', '199.59.148.0/22'];
Expand Down
20 changes: 20 additions & 0 deletions src/Webcrawler/ValidatorW3OrgVerifier.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<?php
namespace WebcrawlerVerifier\Webcrawler;

use WebcrawlerVerifier\Helper\Range;

class ValidatorW3OrgVerifier implements VerifierInterface
{
protected $allowedRanges = ['128.30.52.0/24'];

/**
* Checks whether the given IP address really belongs to a valid host or not
*
* @param $ip string the IP address to check
* @return bool true if the given IP belongs to any of the valid hosts, otherwise false
*/
public function verify($ip)
{
return Range::inRange($ip, $this->allowedRanges);
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?php
namespace WebcrawlerVerifier\Webcrawler;

interface WebcrawlerVerifierInterface
interface VerifierInterface
{
public function verify($ip);
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

use WebcrawlerVerifier\Helper\Range;

class SearchmeWebcrawlerVerifier implements WebcrawlerVerifierInterface
class WotboxTeamVerifier implements VerifierInterface
{
protected $allowedRanges = ['94.199.151.22'];

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<?php
namespace WebcrawlerVerifier\Webcrawler;

use WebcrawlerVerifier\DNS\ReverseVerifier as ReverseVerifier;
use WebcrawlerVerifier\DNS\ReverseVerifier;

class YahooWebcrawlerVerifier implements WebcrawlerVerifierInterface
class YahooIncVerifier implements VerifierInterface
{
protected $allowedHostNames = ['crawl.yahoo.net', 'yse.yahoo.net'];

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<?php
namespace WebcrawlerVerifier\Webcrawler;

use WebcrawlerVerifier\DNS\ReverseVerifier as ReverseVerifier;
use WebcrawlerVerifier\DNS\ReverseVerifier;

class YandexWebcrawlerVerifier implements WebcrawlerVerifierInterface
class YandexLLCVerifier implements VerifierInterface
{
protected $allowedHostNames = ['yandex.ru', 'yandex.net', 'yandex.com'];

Expand Down
Loading

0 comments on commit 5a85afa

Please sign in to comment.