Random User-Agent Generator (+2350 UA's) ?
> Developed for PHP Classes Challenge!
> The _rand-ua_ project is a user-agent generator designed to provide random user-agent strings for various web browsers. This PHP library allows developers to easily generate random user-agent strings, which can be useful for web scraping, automated testing, and other applications that require varied user-agent headers.
-
Key features of rand-ua include:
- Support for Multiple Browsers: Generate user-agent strings for popular browsers such as Chrome, Edge, Firefox, Opera, and Safari;
- Random Selection: Retrieve random user-agent strings to simulate different browsers and platforms;
- Customizable Filtering: Filter user-agent strings based on specific criteria, such as operating system or browser version;
- Simple Integration: Easy to integrate into existing PHP projects with minimal setup.
Authors ?
-
For more information see my blog and my contributions to community.
- dantsec
Tech Stack ???
-
This project was developed with the following technologies:
- PHP (Main Language)
- Composer (Package Manager)
Documents ?
PoC ??
-
Important: First of all, you must have PHP and Composer utilitary installed;
-
Run: `composer dump-autoload && php poc.php`.
<?php
// Composer autoloader.
require __DIR__ . '/vendor/autoload.php';
// Module namespace.
use Dant\RandUa\UserAgentGenerator;
// Get user-agent based on specified OS and Browser.
$specific_ua = UserAgentGenerator::create()->getUserAgent('Windows', 'edge');
// Get random user-agent.
$random_ua = UserAgentGenerator::create()->getRandomUserAgent();
// Possible output: Mozilla/5.0 (Windows NT 10.0) ...
Probabilities of each OS / Browser ?
General
| Operational System | Quantity | Ratio | Percentage | Command |
| ------------------- | ---------- | ----------- | ---------- | ---------------------------------------------------------------- |
| Windows | 1218 | 1218 / 2360 | 51,6% | UserAgentGenerator::create()->getUserAgent('Windows')
|
| Macintosh | 561 | 561 / 2360 | 23,7% | UserAgentGenerator::create()->getUserAgent('Macintosh')
|
| X11 (Unix) | 581 | 581 / 2360 | 24,6% | UserAgentGenerator::create()->getUserAgent('X11')
|
Chrome
| Operational System | Quantity | Ratio | Percentage | Command |
| ------------------- | ---------- | --------- | ---------- | ------------------------------------------------------------------- |
| Windows | 284 | 284 / 600 | 47,3% | UserAgentGenerator::create()->getUserAgent('Windows', 'chrome')
|
| Macintosh | 122 | 122 / 600 | 20,3% | UserAgentGenerator::create()->getUserAgent('Macintosh', 'chrome')
|
| X11 (Unix) | 194 | 194 / 600 | 32,3% | UserAgentGenerator::create()->getUserAgent('X11', 'chrome')
|
Edge
| Operational System | Quantity | Ratio | Percentage | Command |
| ------------------- | ---------- | --------- | ---------- | ----------------------------------------------------------------- |
| Windows | 6 | 6 / 8 | 75% | UserAgentGenerator::create()->getUserAgent('Windows', 'edge')
|
| Macintosh | 1 | 1 / 8 | 12,5% | UserAgentGenerator::create()->getUserAgent('Macintosh', 'edge')
|
| X11 (Unix) | 1 | 1 / 8 | 12,5% | UserAgentGenerator::create()->getUserAgent('X11', 'edge')
|
Firefox
| Operational System | Quantity | Ratio | Percentage | Command |
| ------------------- | ---------- | --------- | ---------- | --------------------------------------------------------------------|
| Windows | 329 | 329 / 589 | 55,8% | UserAgentGenerator::create()->getUserAgent('Windows', 'firefox')
|
| Macintosh | 25 | 25 / 589 | 4,2% | UserAgentGenerator::create()->getUserAgent('Macintosh', 'firefox')
|
| X11 (Unix) | 235 | 235 / 589 | 39,8% | UserAgentGenerator::create()->getUserAgent('X11', 'firefox')
|
Opera
| Operational System | Quantity | Ratio | Percentage | Command |
| ------------------- | ---------- | --------- | ---------- | ------------------------------------------------------------------ |
| Windows | 415 | 415 / 586 | 70,8% | UserAgentGenerator::create()->getUserAgent('Windows', 'opera')
|
| Macintosh | 23 | 23 / 586 | 3,9% | UserAgentGenerator::create()->getUserAgent('Macintosh', 'opera')
|
| X11 (Unix) | 148 | 148 / 586 | 25,2% | UserAgentGenerator::create()->getUserAgent('X11', 'opera')
|
Safari
| Operational System | Quantity | Ratio | Percentage | Command |
| ------------------- | ---------- | --------- | ---------- | ------------------------------------------------------------------- |
| Windows | 184 | 184 / 577 | 31,8% | UserAgentGenerator::create()->getUserAgent('Windows', 'safari')
|
| Macintosh | 390 | 390 / 577 | 67,5% | UserAgentGenerator::create()->getUserAgent('Macintosh', 'safari')
|
| X11 (Unix) | 3 | 3 / 577 | 0,5% | UserAgentGenerator::create()->getUserAgent('X11', 'safari')
|
Contributing ??
# Create a fork from the original repository and clone it.
git clone https://github.com/dantsec/rand-ua.git
# Enter into the project folder.
cd rand-ua/
# Create a new branch with the name feat-[BRANCH_NAME].
git checkout -b feat-[BRANCH_NAME]
# Make your changes and commit them.
git add . && git commit -m "YOUR_COMMIT_MESSAGE"
# Push your branch and open a pull request.
git push origin feat-[BRANCH_NAME]