isLocalCaptureIP static method
Check if the given IP address or hostname is a local capture IP.
Implementation
static bool isLocalCaptureIP(String input) {
// Loại bỏ tiền tố http:// hoặc https:// nếu có
var sanitized = input
.replaceFirst(RegExp(r'^https?:\/\/'), '')
.split('/')[0] // Bỏ path nếu có
.trim();
// Xử lý port cho IPv4 (không áp dụng cho IPv6)
if (!sanitized.contains('::')) {
sanitized = sanitized.split(':')[0];
}
// Danh sách các IP hoặc hostname local
const localHosts = ['localhost', '127.0.0.1', '::1'];
// Kiểm tra trực tiếp
if (localHosts.contains(sanitized)) return true;
// Kiểm tra prefix IP
if (sanitized.startsWith('192.168.')) return true;
if (sanitized.startsWith('10.')) return true;
// Kiểm tra các dải 172.16.0.0 – 172.31.255.255
if (sanitized.startsWith('172.')) {
final parts = sanitized.split('.');
if (parts.length >= 2) {
final secondOctet = int.tryParse(parts[1]);
if (secondOctet != null && secondOctet >= 16 && secondOctet <= 31) {
return true;
}
}
return false;
}
return false;
}