query method

Future<DnsTestResult> query({
  1. required String domain,
  2. required String server,
  3. Duration? timeout,
})

查询单个 DNS 服务器 / Queries a single DNS server.

Implementation

Future<DnsTestResult> query({
  required String domain,
  required String server,
  Duration? timeout,
}) {
  if (server.toLowerCase() == 'system') {
    return resolveWithSystemResolver(domain: domain, timeout: timeout);
  }
  final doh = _dohForServer(server);
  if (doh == null) {
    return Future<DnsTestResult>.value(
      DnsTestResult(
        server: server,
        domain: domain,
        isSuccess: false,
        responseTime: Duration.zero,
        errorMessage:
            'Raw UDP DNS is unavailable on the web; this server has no DoH '
            'endpoint.',
        timestamp: DateTime.now(),
      ),
    );
  }
  return _queryDoH(
    domain: domain,
    dohUrl: doh,
    timeout: timeout ?? defaultTimeout,
    serverLabel: server,
  );
}