'string', 'type' => 'string', ]; const TYPE_WHITELIST = 'whitelist'; const TYPE_BLACKLIST = 'blacklist'; /** * Scopes */ public function scopeWhitelist($query) { return $query->where('type', self::TYPE_WHITELIST); } public function scopeBlacklist($query) { return $query->where('type', self::TYPE_BLACKLIST); } /** * Validiert grob die IP. */ public function isValidIp(): bool { return filter_var($this->ip, FILTER_VALIDATE_IP) !== false; } /** * Gibt Liste aller Whitelist-IPs als Array zurück. */ public static function whitelistArray(): array { return static::where('type', self::TYPE_WHITELIST)->pluck('ip')->all(); } /** * Gibt Liste aller Blacklist-IPs als Array zurück. */ public static function blacklistArray(): array { return static::where('type', self::TYPE_BLACKLIST)->pluck('ip')->all(); } }