testDns method
依次/并发测试多台 DNS 服务器 / Tests multiple DNS servers.
Implementation
Future<List<DnsTestResult>> testDns({
String domain = 'www.google.com',
List<String> dnsServers = const <String>[
'1.1.1.1',
'8.8.8.8',
'114.114.114.114',
],
Duration? timeout,
bool concurrent = true,
bool includeSystemResolver = false,
}) async {
final servers = <String>[
if (includeSystemResolver) 'system',
...dnsServers,
];
if (servers.isEmpty) return const <DnsTestResult>[];
if (concurrent) {
return Future.wait(
servers.map(
(server) => query(domain: domain, server: server, timeout: timeout),
),
);
}
final results = <DnsTestResult>[];
for (final server in servers) {
results.add(
await query(domain: domain, server: server, timeout: timeout),
);
}
return results;
}