123456789101112131415161718192021222324252627282930313233 |
- <?php
- namespace App\Services;
- use Illuminate\Support\Facades\Cache;
- class DomainService
- {
- const CACHE_KEY = 'pf:services:domains:';
- public static function hasValidDns($domain)
- {
- if (! $domain || ! strlen($domain) || strpos($domain, '.') == -1) {
- return false;
- }
- if (config('security.url.trusted_domains')) {
- if (in_array($domain, explode(',', config('security.url.trusted_domains')))) {
- return true;
- }
- }
- $valid = filter_var($domain, FILTER_VALIDATE_DOMAIN, FILTER_FLAG_HOSTNAME);
- if (! $valid) {
- return false;
- }
- return Cache::remember(self::CACHE_KEY.'valid-dns:'.$domain, 1800, function () use ($domain) {
- return count(dns_get_record($domain, DNS_A | DNS_AAAA)) > 0;
- });
- }
- }
|