2026-05-05 07:35:56 +02:00
|
|
|
bool isLocalhost(String host) {
|
|
|
|
|
final h = host.trim().toLowerCase();
|
|
|
|
|
return h == 'localhost' || h == '127.0.0.1' || h == '::1';
|
|
|
|
|
}
|
2026-05-13 23:45:37 +02:00
|
|
|
|
|
|
|
|
String? validateHostname(String? value) {
|
|
|
|
|
if (value == null || value.trim().isEmpty) return 'Required';
|
|
|
|
|
return _checkHostChars(value.trim());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
String? validateOptionalHostname(String? value) {
|
|
|
|
|
if (value == null || value.trim().isEmpty) return null;
|
|
|
|
|
return _checkHostChars(value.trim());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
String? _checkHostChars(String h) {
|
|
|
|
|
if (h.contains(RegExp(r'[@/\\]')) ||
|
|
|
|
|
h.codeUnits.any((c) => c < 32 || c == 127)) {
|
|
|
|
|
return 'Invalid hostname';
|
|
|
|
|
}
|
|
|
|
|
return null;
|
|
|
|
|
}
|