import 'dart:convert';
import 'dart:io';
class PublicDns {
final List<String> prefixes;
PublicDns({required this.prefixes});
factory PublicDns.fromJson(Map<String, dynamic> json) {
return PublicDns(
prefixes: (json['prefixes'] as List)
.map((item) =>
item['ipv4Prefix'] ?? item['ipv6Prefix'])
.whereType<String>()
.toList(),
);
}
}
Future<PublicDns> feathGet({required String url}) async {
var client = HttpClient();
try {
var request = await client.getUrl(Uri.parse(url));
var response = await request.close();
var body = await response.transform(utf8.decoder).join();
var json = jsonDecode(body) as Map<String, dynamic>;
return PublicDns.fromJson(json);
} finally {
client.close();
}
}
Future<void> main() async {
var dns = await feathGet(
url: "https://www.gstatic.com/ipranges/publicdns.json",
);
print(dns.prefixes);
for (var prefix in dns.prefixes) {
print(prefix);
}
}