Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Bot Detect Laravel Package

vipx/bot-detect

Detect and identify web crawlers (Google, Bing, Yahoo, etc.) from user agent and IP. Loads bot metadata from YAML, returns matched bot details, and includes optional caching and configurable cache naming/dumping for better performance.

View on GitHub
Deep Wiki
Context7

VipxBotDetect

This library helps you detecting bots like Google, Yahoo or Bing.

Tests Coverage Status

Installation using composer

$ php composer.phar require vipx/bot-detect

Usage

use Vipx\BotDetect\BotDetector;
use Symfony\Component\Config\FileLocator;
use Vipx\BotDetect\Metadata\Loader\YamlFileLoader;

# Instantiate Symfony components required to load and parse YAML files.
$locator = new FileLocator();
$loader = new YamlFileLoader($locator);

# Use extended bot list prodivded in Resources directory.
$metadataFile = './Resources/metadata/extended.yml';

# Instantiate a BotDetector with the YamlFileLoader instance and path to YAML.
$detector = new BotDetector($loader, $metadataFile);

# Call detect() on BotDetector, passing in a user agent string and IP address,
# most commonly found in $_SERVER['HTTP_USER_AGENT'] and $_SERVER['REMOTE_ADDR']
# respectively.
# detect() will return a Vipx\BotDetect\Metadata\Metadata object containing the
# details of a matched bot and null on no match.
$bot = $detector->detect($agent, $ip);

Note: To greatly improve performance, BotDetector has a built in cache, which can be used to speed up parsing and loading of metadata.

# Instantiate a BotDetector with additional options.
$detector = new BotDetector($loader, $metadataFile, [
  'debug' => $debug,
  'cache_dir' => '/acme/cache',
]);

Via additional options metadata_cache_file and metadata_dumper_class you can further control how cache files are named or generated.

ToDo's

  • Add additional meta data loaders (xml, php)
  • Replace static fixtures with dynamically added data for example from an external archive with some kind of public API or other repository e.g. on Github or Bitbucket

Credits

The first version of list of bots is coming from Manage_Bots script created by the phpBB community. The following community members and contributors worked on the script and its list of bots:

phpBB Community

Marcus Wendel, ReptileGuy, Young Jedi Knight, Pony99CA, Clava, ricjonhay, roBBx, Sr X, HGN, AmigoJack, millipede, maxwell2, StandBy, ade74, heredia21, TheSnake, natalia26, Puchahawa, T50, Peter77sx, Schwpz, Vinny, lanesharon, leschek, fac7orx, Joshua203, Paul, doktornotor, stokerpiller and raimon

Contributors

COil, jdeniau, rubenrua, smilesrg, jbboehr

If you find one or more missing bots, simple fork this repository and add them to the fitting metadata files.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
codifyo/ts-generator-bundle
andydefer/laravel-cluster
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky
spatie/mailcoach-vapor