getIPAddress function
Future
getIPAddress({
- IPAddressFormat ipAddressFormat = IPAddressFormat.string,
- String defaultErrorMessage = 'Not able to find the IP Address.',
- IPAddressVersion ipAddressVersion = IPAddressVersion.v64,
Retrieves the public IP address using the ipify API.
Parameters:
- ipAddressFormat: (Optional) The format in which the IP address should be retrieved, defaults to IPAddressFormat.json.
- defaultErrorMessage: (Optional) The default error message to return if IP address retrieval fails, defaults to 'Not able to find the IP Address.'.
Returns: A Future containing the IP address in the specified format, or a default error message if retrieval fails.
Implementation
Future<dynamic> getIPAddress({
IPAddressFormat ipAddressFormat = IPAddressFormat.string,
String defaultErrorMessage = 'Not able to find the IP Address.',
IPAddressVersion ipAddressVersion = IPAddressVersion.v64,
}) async {
try {
var response = await get(Uri.parse(_getURl(ipAddressVersion)));
if (ipAddressFormat == IPAddressFormat.json) {
if (response.statusCode.isSuccessful()) {
return handleJSONResponse(status: true, value: response.body);
} else {
return handleJSONResponse(status: false, value: defaultErrorMessage);
}
} else if (ipAddressFormat == IPAddressFormat.string) {
if (response.statusCode.isSuccessful()) {
return response.body;
} else {
throw defaultErrorMessage;
}
}
} catch (_) {
if (ipAddressFormat == IPAddressFormat.json) {
return handleJSONResponse(status: false, value: defaultErrorMessage);
} else {
throw defaultErrorMessage;
}
}
}