isLocalCaptureIP static method

bool isLocalCaptureIP(
  1. String input
)

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;
}