lookUp method
Query IP2Location.io hosted domains data for a given IP.
Implementation
Future<Map<String, dynamic>> lookUp(String ip, [int page = 1]) async {
final uri = Uri.parse(_baseUrl).replace(
queryParameters: {
'format': _format,
'source': _configuration.source,
'source_version': _configuration.sourceVersion,
'key': Uri.encodeQueryComponent(_configuration.apiKey),
'ip': Uri.encodeQueryComponent(ip),
'page': page.toString(),
},
);
final response = await http.get(uri);
if (response.statusCode == 200) {
return jsonDecode(response.body) as Map<String, dynamic>;
} else if (response.statusCode == 400 || response.statusCode == 401) {
final body = jsonDecode(response.body);
if (body is Map && body.containsKey('error')) {
final error = body['error'];
if (error is Map && error.containsKey('error_message')) {
throw Exception(error['error_message']);
}
}
}
throw Exception(_error);
}